我正在尝试解决一个竞争性问题,我陷入了以下场景,有人可以帮助我了解如何实现输出吗
解释 :每一组连续三行应折叠成一行
[输出共享如下]
文件中的数据:
Abc 123,
zyxhj pqr
raj
ram:
vilas,
1234
jkal
yui
gshj
输出 :
Abc 123,zyxhj pqr raj
ram:vilas,1234
jkal yui gshj
答案1
使用xargs
:
xargs -d'\n' -n3 <infile
根据\n
ewline 作为分隔符每 3 行读取并打印
使用paste
:
paste -d ' ' - - - <infile
将数据粘贴到 3 列中,并使用空格分隔符
使用awk
:
awk '{ printf "%s%s", $0, (NR%3?OFS:ORS) }' infile
printf 每一行,然后如果 NR(记录数)不是 3 的模,则打印 OFS(输出字段分隔符;默认为空格),否则打印 ORS(输出记录分隔符;默认为换行符)如果是。