重新排列列和操作文本文件的最简单方法

重新排列列和操作文本文件的最简单方法

在学校学习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 很陌生,我学到的用于操作文件的唯一命令是trsed

答案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

相关内容