用shell處理檔案的時候我們常常需要去掉或者加上換行符,name問題就來了怎麼才能快速的替換呢?
我們有這樣一個檔案
<code>[root@hxy working]</code><code># cat 1</code>
<code>GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497</code>
我們需要把逗号去掉,換成換行符可以這樣做
<code>[root@hxy working]</code><code># cat 1|sed 's/,/\n/g'</code>
<code>GD200A16C013493</code>
<code>GD200A16C013494</code>
<code>GD200A16C013495</code>
<code>GD200A16C013497</code>
但是我們反過來了呢?就是把下面的換行替換為用逗号分開,sed反過來用就不行了,
<code>[root@hxy working]</code><code># cat 1|sed 's/,/\n/g'|sed 's/\n/,/g'</code>
我們可用awk來做用也行,如下:
<code>cat</code> <code>1|</code><code>sed</code> <code>'s/,/\n/g'</code><code>|</code><code>awk</code> <code>'{{printf"%s,",$0}}'</code>
這裡也可以用tr來處理,但是te來處理的話還需要手動删除最後一個逗号如下:
<code>[root@hxy working]</code><code># cat 1|sed 's/,/\n/g'|tr -s '\n' ','</code>
<code>GD200A16C013493,GD200A16C013494,GD200A16C013495,GD200A16C013497,[root@hxy working]</code><code>#</code>
<code>[root@hxy working]</code><code># cat 1|sed 's/,/\n/g'|tr -t '\n' ','</code>
<code>[root@hxy working]</code><code># cat 1|sed 's/,/\n/g'|tr '\n' ','</code>
<code></code>
本文轉自 Forande 51CTO部落格,原文連結:http://blog.51cto.com/853056088/1952430