用shell處理文件的時候我們常常需要去掉或者加上換行符,name問題就來了怎么才能快速的替換呢?
我們有這樣一個文件[root@hxy working]# cat 1
GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497
我們需要把逗號去掉,換成換行符可以這樣做[root@hxy working]# cat 1|sed 's/,/\n/g'
GD200A16C013493
GD200A16C013494
GD200A16C013495
GD200A16C013497
但是我們反過來了呢?就是把下面的換行替換為用逗號分開,sed反過來用就不行了,[root@hxy working]# cat 1|sed 's/,/\n/g'|sed 's/\n/,/g'
GD200A16C013493
GD200A16C013494
GD200A16C013495
GD200A16C013497
我們可用awk來做用也行,如下:cat 1|sed 's/,/\n/g'|awk '{{printf"%s,",$0}}'
GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497
這里也可以用tr來處理,但是te來處理的話還需要手動刪除最后一個逗號如下:[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]#