Questions tagged «text-processing»

通过程序,脚本等操作或检查文本


4
按每行字数对行进行排序
给定输入: hello: world foo bar baz bar: baz: bin boop bop fiz bang beep bap: bim bam bop boatkeeper: poughkeepsie 我想将其排序为顶部的大多数单词,至少是末尾的单词,如下所示: baz: bin boop bop fiz bang beep hello: world foo bar baz bap: bim bam bop boatkeeper: poughkeepsie bar: 我将如何使用sort其他工具执行此操作?

5
如何使用awk取绝对值?
如果我有以下两个日期: 2015-09-12,2015-08-13 我需要获取它们之间的天数,我将使用以下代码: awk -F'[-,]' '{print 360*($4-$1)+30*($5-$2)+($6-$3)}' 这段代码的输出-29实际上是29

5
删除重复的行,同时保持行的顺序
[root@server]# awk '!seen[$0]++' out.txt > cleaned awk: (FILENAME=out.txt FNR=8547098) fatal error: internal error Aborted [root@server]# ““服务器””具有:8 GB RAM + 16 GB SWAP,x> 300 GB可用空间,amd64,台式机CPU。科学Linux 6.6。没有其他东西可以使它加载。Awk在几秒钟后中止。out.txt为〜1.6 GB。GNU Awk 3.1.7。 问题:如何在保持行顺序的同时删除重复的行?大小写也很重要,例如:“ A”和“ a”是两个不同的行,必须保留它。但是“ a”和“ a”是重复的,只需要第一个。 答案可能在任何情况下..如果awk对此不利。.那么perl / sed ..可能是什么问题? [root@server]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, …

9
筛选或通过管道传输文件的某些部分
我有一个输入文件,其中的某些部分用开始和结束标记来分隔,例如: line A line B @@inline-code-start line X line Y line Z @@inline-code-end line C line D 我想对此文件进行转换,以使X,Y,Z行通过某些命令(nl例如)过滤,但其余各行保持不变。请注意,nl(数字行)在行之间累积状态,因此并不是将静态转换应用于X,Y,Z行。(编辑:有人指出,nl在不需要积累状态的模式可以工作,但我只是用nl作为一个例子来简化这个问题在现实中的命令是一个更复杂的自定义脚本。什么我期待对于将标准过滤器应用于输入文件的子部分的问题的通用解决方案) 输出应如下所示: line A line B 1 line X 2 line Y 3 line Z line C line D 文件中可能有几个此类需要转换的部分。 更新2我最初没有指定如果有更多的部分应该发生什么,例如: line A line B @@inline-code-start line X line Y line Z @@inline-code-end …

3
sed匹配模式N次
我想将文件拆分为每个2个单词的块。 $cat tmp word1 word2 word3 word4 word5 word6 word7 $sed -e 's/word. word. /&\n/g' tmp word1 word2 word3 word4 word5 word6 word7 $sed -e 's/word. \{2\}/&\n/g' tmp word1 word2 word3 word4 word5 word6 word7 我希望最后一个命令给出与之前相同的结果。怎么了?

5
用sed替换大小写匹配模式
我的源代码分布在多个文件中。 它具有abcdef我需要替换为的模式pqrstuvxyz。 模式可以是Abcdef(句子大小写),然后需要将其替换Pqrstuvxyz。 模式可以是AbCdEf(切换大小写),然后需要用替换PqRsTuVxYz。 简而言之,我需要匹配源模式的大小写并应用适当的目标模式。 如何使用sed或其他任何工具来实现此目的?

2
为什么此xargs命令不起作用?
我想删除所有.sh扩展名,所以这样做: ls *.sh | xargs -I {} mv {} `basename {} .sh` 但是,它不起作用,其行为类似于basename返回未更改的文件名。 为什么会这样呢? 例如,这有效: ls *.sh | xargs -I {} echo `basename {}.jpg .jpg`; 编辑: 解决方案:单引号可防止`basename ...`在运行命令之前由外壳进行评估。 ls *.sh | xargs -I {} sh -c 'mv {} `basename {} .sh`'


3
tail -f,在日志空闲3秒后插入换行符吗?
执行a时tail -f error.log,如何在3秒内未对文件执行任何操作后以编程方式插入换行符? (显然,一旦添加了一个换行符,则不应再添加其他换行符,除非将其他文本行添加到日志文件中) 例如,这些行被添加到error.log: foo bar boo [[wait 4 seconds]] 2far 2foo 2bar 2boo [[wait 40 seconds]] 2far 这将是控制台中的输出: foo bar boo 2far 2foo 2bar 2boo 2far

7
检查文件的所有行是否都出现在不同的文件中
我得到两个文件:大约1万行的file1和几百行的file2。我想检查file2的所有行是否都出现在file1中。即:∀行ℓ∈file2:∀∈file1 任何人都不应该知道这些符号是什么意思,或者“检查file2的所有行是否在file1中出现”的含义是:两个文件中的几个等效行都不影响检查是否返回文件满足要求。 我该怎么做呢?


4
将每行的一部分输出到单独的文件中
我有一个像这样的文件: a AGTACTTCCAGGAACGGTGCACTCTCC b ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT c ATATTAAATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCATCCACTCCACAC d ATCAGTTTAATATCTGATACGTCCTCTATCCGAGGACAATATATTAAATGGA e TTTGGCTAAGATCAAGTGTAGTATCTGTTCTTATAAGTTTAATATCTGATATGTCCTCTATCTGA 我想制作a.seq包含sequence的文件AGTACTTCCAGGAACGGTGCACTCTCC。同样b.seq包含ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT。简而言之,应将Column1用作扩展名的输出文件名,.seq然后在其中具有相应的column2序列。我可以通过编写一个Perl脚本来做到这一点,但是命令行上的任何操作都会有所帮助。希望尽快听到。

2
iconv非法输入序列-为什么?
尝试将文本文件转换为等效的ASCII文件时,出现错误消息that iconv: illegal input sequence at position。 我使用的命令是 iconv -f UTF-8 -t ascii//TRANSLIT file 令人反感的角色是æ。 文本文件本身位于此处。 为什么说非法顺序?输入的字符是正确的UTF-8字符(U + 00E6)。

2
什么是grep -v的python等价物?
我喜欢grep -v。我用它所有的时间。但是我也正在用python做一些文本处理,而我缺少一件事。 通常,我通常grep -v将多余的内容从文本中删除。 例如, $ grep -v '[a-z]' # (I manually review this output to confirm that I don't want those lines) $ grep '[a-z]' > linesiwanted 但是如何匹配Python中的正则表达式的补码?例如,\w?的补码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.