我有一個文件的條目類似如下:的Unix Shell腳本:AWK/SED循環
root:x:0::192.168.164.164
bin:x:1:bin,daemon:192.168.164.164
daemon:x:2:bin,daemon:192.168.164.164
test:x:501:test1,test2,test3,test4:192.168.164.160
test5:x:502::192.168.164.160
我一直在尋找UNIX的bash/shell腳本的方式通過該文件可以轉化爲:
root;0;;192.168.164.164
bin;1;bin;192.168.164.164
bin;1;daemon;192.168.164.164
daemon;2;bin;192.168.164.164
daemon;2;daemon;192.168.164.164
test;501;test1;192.168.164.160
test;501;test2;192.168.164.160
test;501;test3;192.168.164.160
test;501;test4;192.168.164.160
test5;502;;192.168.164.160
似乎是一個微不足道的'awk'命令。使用':'作爲輸入字段分隔符,';'作爲輸出字段分隔符,然後打印您想要的字段。 – Barmar
啊,這比它稍微複雜一些。當字段4包含逗號時,您需要將其拆分,然後爲該數組的每個元素重複打印。 – Barmar
所以這行'test:x:501:test1,test2,test3,test4:192.168.164.160'應該轉換成'test; 501; test1; 192.168.164.160 test; 501; test2; 192.168.164.160 test; 501; test3; 192.168.164.160 test; 501; test4; 192.168.164.160',對吧? – RomanPerekhrest