您好,我有一项艰巨的任务(至少对我而言)。我需要执行以下操作:
这是我的意见
host1
atetley 170.198.19.165 91 18 6 4198
NJPYNYFWD01 170.198.82.143 257 14 6 4749
NJTTKLFWD01 170.198.82.142 257 13 6 3993
host2
dfriel 198.177.151.69 91 14 6 2023
host3
dfriel 198.177.151.69 91 14 6 2023
fklotz 198.177.151.81 91 15 6 1829
ganthos 198.177.151.92 91 20 6 791
我需要以下输出
host1 atetley 170.198.19.165 91 18 6 4198
host1 NJPYNYFWD01 170.198.82.143 257 14 6 4749
host1 NJTTKLFWD01 170.198.82.142 257 13 6 3993
host2 dfriel 198.177.151.69 91 14 6 2023
host3 dfriel 198.177.151.69 91 14 6 2023
host3 fklotz 198.177.151.81 91 15 6 1829
host3 ganthos 198.177.151.92 91 20 6 791
完全不知道该怎么做。我确实可以控制如何在输出文件中注入(inject)主机名(例如 host1 host host3 )。所以我可以说在每个主机前放置一个唯一标识符,例如“uuu”
uuuhost1
atetley 170.198.19.165 91 18 6 4198
NJPYNYFWD01 170.198.82.143 257 14 6 4749
NJTTKLFWD01 170.198.82.142 257 13 6 3993
UUUhost2
dfriel 198.177.151.69 91 14 6 2023
UUUhost3
dfriel 198.177.151.69 91 14 6 2023
fklotz 198.177.151.81 91 15 6 1829
ganthos 198.177.151.92 91 20 6 791
但我仍然需要这样的结果。如果添加唯一标识符有帮助。我可以在文件 mainpulation 结束后删除它。示例从文件中取出所有“UUU”
host1 atetley 170.198.19.165 91 18 6 4198
host1 NJPYNYFWD01 170.198.82.143 257 14 6 4749
host1 NJTTKLFWD01 170.198.82.142 257 13 6 3993
host2 dfriel 198.177.151.69 91 14 6 2023
host3 dfriel 198.177.151.69 91 14 6 2023
host3 fklotz 198.177.151.81 91 15 6 1829
host3 ganthos 198.177.151.92 91 20 6 791
谁能帮我解决这个问题?
最佳答案
您可以使用 awk 打印它:
awk 'NF==1{h=$1;next} {print h, $0}' file
host1 atetley 170.198.19.165 91 18 6 4198
host1 NJPYNYFWD01 170.198.82.143 257 14 6 4749
host1 NJTTKLFWD01 170.198.82.142 257 13 6 3993
host2 dfriel 198.177.151.69 91 14 6 2023
host3 dfriel 198.177.151.69 91 14 6 2023
host3 fklotz 198.177.151.81 91 15 6 1829
host3 ganthos 198.177.151.92 91 20 6 791
关于linux - 根据文件中的输入将文本添加到行的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22056006/