我有一个 10 列制表符分隔的文件,我想从文件第一列的所有条目中删除单词 "id"
。
是否有一个awk(或其他linux命令行(一行来做到这一点?
即myfile.withid.txt
id1 1 2 id3 4 5 6 7 8 9
id2 10 20 id30 40 50 60 70 80 90
等。
使用awk to,myfile.woid.txt
1 1 2 id3 4 5 6 7 8 9
2 10 20 id30 40 50 60 70 80 90
等。
请注意,单词 "id"
已从第一列中删除。
这个尴尬的单行代码可以:
awk -F't' '{gsub(/id/,"",$1);print}' file
另一个awk
awk '/^id/ {$0=substr($0,3)}1' file
1 1 2 id3 4 5 6 7 8 9
2 10 20 id30 40 50 60 70 80 90
尝试:
awk '{sub (/^id/, "", $0)}{print}' myfile.woid.txt
有关更多详细信息:man awk
或 http://unixhelp.ed.ac.uk/CGI/man-cgi?awk
替代解决方案:
awk 'BEGIN{j=1}{$1=j++; print}'>myfile.woid.txt myfile.wid.txt