1. 程式人生 > >shell腳本,每5個字符之間插入"|",行末不插入“|”

shell腳本,每5個字符之間插入"|",行末不插入“|”

begin shel localhost 希望 print aaaaa amp 文本 aaa

文本
aaaaabbbbbcccccdddd
eeeeefffffkkkkkvvvv
nnnnnggggg

希望得到的結果如下:aaaaa|bbbbb|ccccc|dddd
eeeee|fffff|kkkkk|vvvv
nnnnn|ggggg

匹配要求:希望每5個字符之間插入一個"|",如果該行的字符數量正好是5的倍數,行末就不插入"|"了。

解題如下:
[[email protected] zuoye2]# cat file
aaaaabbbbbcccccdddd
eeeeefffffkkkkkvvvv
nnnnngggg
[[email protected] zuoye2]# vi file
[[email protected]

/* */ zuoye2]# awk ‘BEGIN{FS=OFS=""}{for(i=1;i<=NF;i++){if(i%5==0&&i!=NF){printf $i"|"}else{printf $i}}print ""}‘ file
aaaaa|bbbbb|ccccc|dddd
eeeee|fffff|kkkkk|vvvv
nnnnn|ggggg

shell腳本,每5個字符之間插入"|",行末不插入“|”