我有 50,000 行制表符分隔的文本文件。我想拆分第一列并按 output.txt 中所示进行打印
输入.txt
rt|371443144|mb|MN556661.1| 2200443 A
rt|371443344|mb|MN556645.1| 2594155 A
rt|371467899|mb|MN555666.1| 2594175 A
输出.txt
MN556661.1 2200443 A
MN556645.1 2594155 A
MN555666.1 2594175 A
答案1
另一种选择cut
是:
cut input.txt -d'|' -f4-5 --output-delimiter='' >> output.txt
顺便说一句,您在问题中提到它是制表符分隔的,但我将此处|
作为分隔符。
答案2
cat input.txt | awk -F\| '{print $4 $5 $6}' >> output.txt
答案3
你可以使用 GNU sed 这样做:
sed -r 's/([^|]+\|){3}//; s/\|//'
即删除前面有管道的三个组,第二个替换命令删除第四个字段之后的管道。