我需要知道在awk中是否可以使用换行符作为字段分隔符,以将多个行合并成一行?
例如:
$ cat yo
a aa aaa
bb bbb bbb
cccc ccccc cccc
ddd dddd ddd
eeeee eeeee eee
fffff ffffff fffffff
gggg ggggg
hhhhhh hhhhhhh hhhhhhhhh
iii iiiiiiiii iiiii
jjjj jjjjj jjjjj
kkkkk kkkkk
lllllllll lll ll
以下是我小小脑袋能想到的一些方法,但都没有起作用。
cat file |awk -F'\n' '{print}'
cat yo |awk 'NF' '{print $NF}'
cat yo |awk -F'/^$/d' '{print $NF}'
cat yo |awk -F'^$^[ \t]*$' '{print $NF}'
cat yo |awk -F'^..' '{print $NF}'
cat yo |awk -F'\t' '{print}'
期望输出:
a aa aaa bb bbb bbb cccc ccccc cccc ddd dddd ddd eeeee eeeee eee
fffff ffffff fffffff gggg ggggg hhhhhh hhhhhhh hhhhhhhhh
iii iiiiiiiii iiiii jjjj jjjjj jjjjj kkkkk kkkkk lllllllll lll ll
awk -v RS= '$1=$1' file
。 - Ed Morton$1=$1
就足够了。棒极了! - fedorqui{$1=$1}1
,以解决记录为空的情况,但在这种情况下不适用。 - Ed Mortonawk '$1=$1' RS= file
。 - Jotne