我想使用awk
,sed
或perl
从文件A转到文件B:
文件A(标签分隔):
target_id length eff_length est_counts tpm
ENSORLT00000000001.1 1614 1663.8 266 2.69411
ENSORLT00000000002.8 1641 1724.36 62.1756 0.607613
ENSORLT00000000003.1 1389 1363.82 68.8244 0.850394
ENSORLT00000000004.3 537 484.396 2 0.0695767
ENSORLT00000000005.2 520 374.865 0 0
ENSORLT00000000007.1 1809 2083.96 699 5.65227
ENSORLT00000000008.4 1098 1099.36 423.548 6.49226
文件B(标签分隔):
target_id length eff_length est_counts tpm
ENSORLT00000000001 1614 1663.8 266 2.69411
ENSORLT00000000002 1641 1724.36 62.1756 0.607613
ENSORLT00000000003 1389 1363.82 68.8244 0.850394
ENSORLT00000000004 537 484.396 2 0.0695767
ENSORLT00000000005 520 374.865 0 0
ENSORLT00000000007 1809 2083.96 699 5.65227
ENSORLT00000000008 1098 1099.36 423.548 6.49226
第一列中的每个id都具有相同的字符数(列标题除外)。
我尝试使用sed 's/ENSORLT*.*\..\t/ENSORLT*/g' FileA > FileB
,但我认为*
存在问题。
答案 0 :(得分:1)
sed 's/\..//' file
................
答案 1 :(得分:0)
使用Perl Pie:
perl -pi -e 's/\..//' file
......竞争; - )
答案 2 :(得分:0)
awk 'NR>1{sub(/..$/,"",$1)}1' OFS="\t" file
target_id length eff_length est_counts tpm
ENSORLT00000000001 1614 1663.8 266 2.69411
ENSORLT00000000002 1641 1724.36 62.1756 0.607613
ENSORLT00000000003 1389 1363.82 68.8244 0.850394
ENSORLT00000000004 537 484.396 2 0.0695767
ENSORLT00000000005 520 374.865 0 0
ENSORLT00000000007 1809 2083.96 699 5.65227
ENSORLT00000000008 1098 1099.36 423.548 6.49226