我需要你在创建输出的支持。我有输出为
我在努力实现
`1 ABC STATUS 7 PROHIBITED 8 PROHIBITED
2 CDE STATUS 7 PROHIBITED 8 PROHIBITED
3 FGH STATUS 142 PROHIBITED
2 HIJ STATUS 7 PROHIBITED
或者在下面的任何一个,其中每个第一列和第二列都填充在下面的空白间隙中。
`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 `
到目前为止,我一直试图在一个单一的行实现这一点
cat file | paste -sd'\t\n'
但它并没有显示预期的结果。如果有人能为我提供如何实现的指导,我将不胜感激
5条答案
按热度按时间jk9hmnmh1#
生成第一组输出的一个
awk
想法:这将产生:
flseospp2#
使用任何POSIX awk,你都可以测试一行是否以空格开头:
nxagd54h3#
这可能对您有用(GNU sed):
将记录存储在保持空间中,并在新记录的开始或文件的结束处交换回保持空间,删除所有换行符并打印。
注:新记录由行首的非空白字符指定。
nimxete24#
使用您所展示的示例和尝试,请尝试以下GNU
awk
代码。ibrsph3r5#
如果要连接的行总是以空格开始,如示例输入中所示,则
sed
解决方案可能是