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