shell替換和去掉換行符

用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]#
相關文章
相關標籤/搜索