San*_*nti 3 linux awk text-processing
给定这样的输入:
field1,field2,field3,field4
Run Code Online (Sandbox Code Playgroud)
我想得到这样的输出
field1
field2
field3
field4
Run Code Online (Sandbox Code Playgroud)
我怎样才能用 awk 做到这一点?
Awk 的惯用方式可能是
awk 'BEGIN{FS=","; OFS="\n"} {$1=$1} 1'
Run Code Online (Sandbox Code Playgroud)
或同等地
awk '{$1=$1} 1' FS=, OFS='\n'
Run Code Online (Sandbox Code Playgroud)
just{$1=$1}
强制使用新的分隔符重新评估记录OFS
,并且1
触发默认print
操作。如果您愿意,您可以使用其他表达式(例如 )NF += 0
来强制重新评估 - 这是一个偏好问题。
一个快速而肮脏的方法是
awk -vRS=, 1
Run Code Online (Sandbox Code Playgroud)
(或awk 1 RS=,
) 它将每个逗号分隔的单词视为一个完整的记录,并使用默认的换行记录分隔符输出它们。
归档时间: |
|
查看次数: |
2755 次 |
最近记录: |