2011-01-19 4 views
1

私は、クリーンアップする必要がある数千の大きなテキストファイルを持っています。カンマで終わる行をカンマとピリオド(、。)で終わらせる必要があります。sedを使用して、すべての "、 n"を最後の行を含めて "、。 n"に置き換える必要があります。

私は以下を見つけました。これは最後の行を除くすべての行に適用されます。それは私が必要とするものに近いものでなければならないが、最後の行でもそれを動作させる方法を理解できない。

find . -name "*.txt" -print | xargs sed -i ':a;N;$!ba;s/,\n/,\.\n/g' 

私のデータは、このようなものになります。

0,0,0,193,17,.,., 
0,0,0,174,19,.,., 
0,0,0,124,14,.,., 

を私はそれがこのように見える必要があります。

0,0,0,193,17,.,.,. 
0,0,0,174,19,.,.,. 
0,0,0,124,14,.,.,. 
+0

分岐には何がありますか? –

+0

@larsmans:バックスラッシュと 'g'が不要な点を除いて、あなたの答えは正しいです。 –

+0

@Dennis:元に戻す。私はOPのブランチングと「N」コマンドに分かれて混乱していました。私は何かを逃したと思っていました... –

答えて

3
sed 's/,$/,./' 

$は、行の終わりを意味します。)

+0

ありがとう!それは私に多くの時間を節約しました。 – Paul

関連する問題