如何使用shell脚本操作文本文件?
输入
chr2:98602862-98725768
chr11:3100287-3228869
chr10:3588083-3693494
chr2:44976980-45108665
预期产出
2 98602862 98725768
11 3100287 3228869
10 3588083 3693494
2 44976980 45108665
答案 0 :(得分:1)
使用sed
即可编写
$ sed 's/chr//; s/[:-]/ /g' file
2 98602862 98725768
11 3100287 3228869
10 3588083 3693494
2 44976980 45108665
或许您可以使用awk
awk -F "chr|[-:]" '{print $2,$3, $4}' file
2 98602862 98725768
11 3100287 3228869
10 3588083 3693494
2 44976980 45108665
它的作用
-F "chr|[-:]"
将字段分隔符设置为chr
或:
或-
。现在您可以打印不同的字段或列。
您还可以使用另一个字段分隔符-F [^0-9]+
,它将除数字之外的任何内容作为分隔符。
答案 1 :(得分:1)
如果你不关心领先的空白字符:
$ tr -s -c '[0-9\n]' ' ' < file
2 98602862 98725768
11 3100287 3228869
10 3588083 3693494
2 44976980 45108665