用下划线仅替换表格文件的空白(无制表符,无行尾)

时间:2018-11-28 17:25:00

标签: string replace whitespace tr

我只需要用下划线替换制表符分隔文件的空白(但要使制表符和分隔符保持一行)。该文件由500万行和8列组成,此处以前两行为例:

Contig505_strand1_frame2_coord21-810    sp|Q06605|GRZ1_RAT Granzyme-like protein 1 OS=Rattus norvegicus PE=2 SV=1   32.245  245 153 6   5.15e-33    123
Contig505_strand1_frame2_coord21-810    sp|P36178|CTRB2_LITVA Chymotrypsin BII OS=Litopenaeus vannamei PE=1 SV=1    34.483  232 140 7   1.78e-32    122

现在我按顺序使用这些命令,但是速度很慢...有更快的方法吗?

tr -s '\t' ';' <inputfile.txt >file2.txt
tr -s '[:blank:]' '_' <file2.txt >file3.txt
tr -s ';' '\t' <file3.txt >file4.txt

谢谢!

1 个答案:

答案 0 :(得分:0)

[:blank:]包含制表符,所以我想如果您想用下划线替换一个或多个空格,则效果会更好:

sed -E 's/ +/_/g' inputfile.txt > file2.txt

sed(流编辑)命令搜索一个或多个空格,并将其替换为下划线。 “ g”表示全局,这意味着如果找到,则在一行上进行多次替换。默认操作是仅替换第一个匹配项。