在学校学习linux,目前正在处理文本文件。希望一路上到处学习一些捷径。目前我有一个文本文件,其内容如下:
First Last 111 E. Road New York NY
First2 Last2 222 w. Road Newark NJ
我们应该编写一个脚本来重新排列列和逗号分隔而不是制表符分隔。我所做的只是剪切每个字段并放入其自己的 tmpfile 中,然后粘贴在一起,如下所示:
paste tmplast tmpfirst tmpstate tmpaddress | tr '\t' ',' > finished
有没有比将所有内容剪切到 tmp 文件并粘贴在一起更快的方法?我对 Linux 很陌生,我学到的用于操作文件的唯一命令是tr
和sed
。
答案1
awk
你可以这样做:
awk 'BEGIN {FS="\t"; OFS=","} {print $2, $1, $5, $3, $4}' file
FS 和 OFS 指定“(输入)字段分隔符”和“输出字段分隔符”,然后可以使用符号显式指定打印字段的顺序$
。 (不需要临时文件。)
输出:
Last,First,NY,111 E. Road,New York
Last2,First2,NJ,222 w. Road,Newark