kor*_*rin 3 awk text-formatting
考虑以下awk
语句及其输出:
$ awk -F "/" '/\/tcp/ {print $1}' input_file
10\n
20\n
Run Code Online (Sandbox Code Playgroud)
我想要的输出是:
10,20
Run Code Online (Sandbox Code Playgroud)
我尝试的是:
$ awk -F "/" 'BEGIN{ORS=","} /\/tcp/ {print $1}' input_file
10,20,
Run Code Online (Sandbox Code Playgroud)
如何去掉末尾的逗号?
不要将 ORS 设置为,,
因为这样你的脚本的输出不会以换行符结尾,因此它不是每个 POSIX 的有效文本文件,因此与你调用的其他脚本使用它所做的事情是一样的。相反,不要管 ORS,这样它就会保留您的平台应该具有的任何值,并在,
您想要输出的每个字符串之前打印除第一个字符串之外的每个字符串:
awk -F '/' '/\/tcp/{printf "%s%s", sep, $1; sep=","} END{print ""}'
Run Code Online (Sandbox Code Playgroud)
例如:
$ seq 3 | awk '{printf "%s%s", sep, $0; sep=","} END{print ""}'
1,2,3
Run Code Online (Sandbox Code Playgroud)