用shell處理文件的時候咱們經常須要去掉或者加上換行符,name問題就來了怎麼才能快速的替換呢?
shell
咱們有這樣一個文件
bash
[root@hxy working]# cat 1 GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497
咱們須要把逗號去掉,換成換行符能夠這樣作ide
[root@hxy working]# cat 1|sed 's/,/\n/g' GD200A16C013493 GD200A16C013494 GD200A16C013495 GD200A16C013497
可是咱們反過來了呢?就是把下面的換行替換爲用逗號分開,sed反過來用就不行了,
it
[root@hxy working]# cat 1|sed 's/,/\n/g'|sed 's/\n/,/g' GD200A16C013493 GD200A16C013494 GD200A16C013495 GD200A16C013497
咱們可用awk來作用也行,以下:class
cat 1|sed 's/,/\n/g'|awk '{{printf"%s,",$0}}' GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497
這裏也能夠用tr來處理,可是te來處理的話還須要手動刪除最後一個逗號以下:
awk
[root@hxy working]# cat 1|sed 's/,/\n/g'|tr -s '\n' ',' GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497,[root@hxy working]# [root@hxy working]# cat 1|sed 's/,/\n/g'|tr -t '\n' ',' GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497,[root@hxy working]# [root@hxy working]# cat 1|sed 's/,/\n/g'|tr '\n' ',' GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497,[root@hxy working]#