0

我有一个 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 到 myfile.woid.txt

1 1 2 id3 4 5 6 7 8 9
2 10 20 id30 40 50 60 70 80 90

等等

请注意,该词"id"已从第一列中删除。

4

4 回答 4

3

这个 awk 单行程序可以:

awk -F'\t' '{gsub(/id/,"",$1);print}' file
于 2013-10-13T00:52:42.960 回答
2

其他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
于 2013-10-13T07:33:17.797 回答
1

尝试:

awk '{sub (/^id/, "", $0)}{print}' myfile.woid.txt

如需查看更多详细信息:man awkhttp://unixhelp.ed.ac.uk/CGI/man-cgi?awk

于 2013-10-13T01:18:19.617 回答
1

替代解决方案:

 awk 'BEGIN{j=1}{$1=j++; print}'>myfile.woid.txt myfile.wid.txt
于 2013-10-13T05:25:29.277 回答