这是我的档案
inavgmcn,inavg7ey evl33001897,evl308971,evs3300142,evh8890123
inavgmcn,inavg7ey,pwdelf46,krpuram1,kundur12 evl3301897,evl3308971,evs3300142,evh8890123
pwdelf46,krpuram1,kundur12 evl3308971,evs3300142,evh8890123
我试图将每个记录中的两个字段分开并打印以将每8个章程剪切成新的行,我的命令我只获得了一半的部分,任何人都可以帮助解决这个问题。
MY Command
awk ' BEGIN {printf ("%-10s\t%-10s\n","USERS", "HOSTNAMES" )}; { printf ("%-.8s\t%-7s\n", $1,$2) }' filename
USERS HOSTNAMES
inavgmcn evl33001897,evl3308971,evs3300142,evh8890123
期待输出
USERS HOSTNAMES
inavgmcn evl3301897
inavg7ey evl3308971
evs3300142
evh8890123
inavgmcn evl3301897
inavg7ey evl3308971
pwdelf46 evs3300142
krpuram1 evh8890123
kundur12
pwdelf46 evl3308971
krpuram1 evs3300142
kundur12 evh8890123
这是输出我试图首先在每8个字符的字段中进行字段剪切并保持到下一个新行,因为相同的第2个字段剪切了10个字符并保留字符到下一个新行..请如果我的问题不可理解,请告诉我......
答案 0 :(得分:1)
您的问题不是很清楚,但根据示例输出,下面的脚本可能会有所帮助。
paste <(awk '{print $1}' filename|tr ',' '\n') <(awk '{print $2}' filename|tr ',' '\n')
上面的脚本可能不会提供您期望的文本格式,但我希望这是您正在寻找的内容。
答案 1 :(得分:1)
根据您分享的输出。这是我可以建议的最好的解决方案。
(echo -e "\nUSERS\n"; awk '{printf $1",\n"}' filename | tr ',' '\n') > file1
(echo -e "\nHOSTNAMES\n";awk '{printf $2",\n"}' filename | tr ',' '\n') > file2
临时文件file1&amp; file2已创建。 file1存储所有用户,file2存储所有主机名。 下面的命令给出了你想要的格式。
diff -y file1 file2|tr -d ["|><"]
捕获所需数据后,您可以删除不需要的文件。