057 - - No adod3 stptazlqn 10 753
tlm 10 027
stp 10 021
12 - - No azad1
bbcz 30 12
03085 - - No azad1 azad1222
xxaz 1 12
azzst 1 12
hss 2 12
057 - - No adod3 stptazlqn 10 753 057 - - No adod3 tlm 10 027 057 - - No adod3 stp 10 021 12 - - No azad1 12 - - No azad1 bbcz 30 12 03085 - - No azad1 azad1222 03085 - - No azad1 xxaz 1 12 03085 - - No azad1 azzst 1 12 03085 - - No azad1 hss 2 12
谢谢您的帮助。
干杯, 色拉
答案 0 :(得分:0)
awk
来营救!
$ awk '{if($1+0==$1) p=$1 FS $2 FS $3 FS $4 FS $5; else $0=p FS $0}1' file | column -t
057 - - No adod3 stptazlqn 10 753
057 - - No adod3 tlm 10 027
057 - - No adod3 stp 10 021
12 - - No azad1
12 - - No azad1 bbcz 30 12
03085 - - No azad1 azad1222
03085 - - No azad1 xxaz 1 12
03085 - - No azad1 azzst 1 12
03085 - - No azad1 hss 2 12
此处FS
是字段分隔符,默认情况下是空白。数字测试是通过零加法完成的;用管道传输到column
进行漂亮的格式化。末尾的1
是打印行($0
变量)的简写
答案 1 :(得分:0)
这可能对您有用(GNU sed):
sed -r '/^[0-9]/!G;s/(.*\S)\s*\n((\S+\s*){5}).*/\2 \1/;h' file
使用模式匹配从以整数开头的行中提取字段,该整数将被追加到未添加的行中。
要正确对齐列,请使用:
sed -r '/^[0-9]/!G;s/(.*\S)\s*\n((\S+\s*){5}).*/\2 \1/;h' file | column -t