如何使用sed或awk修改文本

时间:2013-01-30 16:06:30

标签: unix sed awk

我想转换此文件

hg19_ct_UserTrack_3545_12805 range=chr1:117217481-117217677 5'pad=0 3'pad=0 strand=+ repeatMasking=none
TCCTCATGAGTTTACATTCTTTATTAGTTTCTCTGTTTATGGTCATCTTC
CCCTGGGTATGTAAGCTGTCTGTGGGCTGGAATCTGGTCTGTCTTGTTCT
CTGGTGTTGGTCCAATGCCTAGAATAATGCCTAGCACATAGGATGTGATC
AACAAATATTTGTTGAATGAATACGTTCTAGTTGGAAAGACAATAAA .... etc

range=chr1:117217481-117217677 5'pad=0 3'pad=0 strand=+ repeatMasking=none
TCCTCATGAGTTTACATTCTTTATTAGTTTCTCTGTTTATGGTCATCTTC
CCCTGGGTATGTAAGCTGTCTGTGGGCTGGAATCTGGTCTGTCTTGTTCT
CTGGTGTTGGTCCAATGCCTAGAATAATGCCTAGCACATAGGATGTGATC
AACAAATATTTGTTGAATGAATACGTTCTAGTTGGAAAGACAATAAA .... etc

我一直在尝试awk并且没有运气。

2 个答案:

答案 0 :(得分:0)

您只需要从第一行删除hg19_ct_UserTrack_3545_12805吗?

然后尝试:

awk 'NR==1{sub(/^[^ ]* /,"")}1' file

答案 1 :(得分:0)

由于这是一个简单的替换,我会使用sed

$ sed '1s/\w\+ //' file
range=chr1:117217481-117217677 5'pad=0 3'pad=0 strand=+ repeatMasking=none
TCCTCATGAGTTTACATTCTTTATTAGTTTCTCTGTTTATGGTCATCTTC
CCCTGGGTATGTAAGCTGTCTGTGGGCTGGAATCTGGTCTGTCTTGTTCT
CTGGTGTTGGTCCAATGCCTAGAATAATGCCTAGCACATAGGATGTGATC
AACAAATATTTGTTGAATGAATACGTTCTAGTTGGAAAGACAATAAA

说明:

1   # First line only
s/  # Subsitution 
\w+ # Match one or more word character follow by a space
/   # Replace with
/   # Nothing

默认情况下,sed会打印到stdout,但您可以使用-i选项直接将更改保存到文件:sed -i '1s/\w\+ //' file