Pra*_*yag 5 linux merge awk row sed
我需要您支持创建输出。我的输出为
1 ABC STATUS
7 PROHIBITED
8 PROHIBITED
2 CDE STATUS
7 PROHIBITED
8 PROHIBITED
3 FGH STATUS
142 PROHIBITED
2 HIJ STATUS
7 PROHIBITED
Run Code Online (Sandbox Code Playgroud)
我正在努力实现
`1 ABC STATUS 7 PROHIBITED 8 PROHIBITED
2 CDE STATUS 7 PROHIBITED 8 PROHIBITED
3 FGH STATUS 142 PROHIBITED
2 HIJ STATUS 7 PROHIBITED
Run Code Online (Sandbox Code Playgroud)
或者在下面的空白处填充第一列和第二列。
`1 ABC STATUS
1 ABC 7 PROHIBITED
1 ABC 8 PROHIBITED
2 CDE STATUS
2 CDE 7 PROHIBITED
2 CDE 8 PROHIBITED
3 FGH STATUS
3 FGH 142 PROHIBITED
2 HIJ STATUS
2 HIJ 7 PROHIBITED
2 HIJ 8 PROHIBITED `
Run Code Online (Sandbox Code Playgroud)
到目前为止,我试图在一行中实现这一目标
cat file | paste -sd'\t\n'
Run Code Online (Sandbox Code Playgroud)
但它没有显示预期的结果。如果有人能为我提供有关如何实现目标的指导,我将不胜感激
awk生成第一组输出的一个想法:
awk '
{ if (NF==3)
printf "%s%s",(NR>1 ? "\n" : ""),$0 # if not 1st row of input then prefix the output with "\n" (to terminate previous line of output)
else
printf "%s",$0
}
END {print ""} # terminate last line of output
' file
Run Code Online (Sandbox Code Playgroud)
这会生成:
1 ABC STATUS 7 PROHIBITED 8 PROHIBITED
2 CDE STATUS 7 PROHIBITED 8 PROHIBITED
3 FGH STATUS 142 PROHIBITED
2 HIJ STATUS 7 PROHIBITED 8 PROHIBITED
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |