2010-12-29 18 views
2

私はテキストファイルを持っていて、最後の2行目のカンマを削除したいと思います。sedを使用して最後のコンマを削除する

a, b, c, d, 
m, n, p, 
x, y, z, 
); 

z以降のコンマは削除する必要があります。

sed 'N;$s/,\n/\n/;P;D' inputfile 

それは最後から行の末尾からカンマを削除します。

+0

感謝を。最後の行の最後の文字を削除することができるかどうかも知りたいです。この場合、 – shantanuo

答えて

3

は、この試してみて。これは、最後の行の後に何も表示されないことを前提としています。あなたが代わりにその行の内容上のキーが必要な場合は

、これは動作するはずです:また、AWKでこれを行うことができ

sed 'N;/)\;/s/,\n/\n/;P;D' inputfile 
+0

@shantanuo:最後のセミコロンを削除し、最後のセミコロンを削除するには、次のようにします: 'sed 'N; /)\;/s /、\\(\ n。* \\) $/\ 1 /; P; D'') –

+0

あなたの第2の提案(あなたの2番目の提案私は実際には動作しませんが、最初のことはありません。 –

+0

@Clayton: "z"がまだ残っている場合は、カンマを意味しますか? 「2番目の提案」とは、回答またはコメントの中の1つを意味しますか?あなたがコメント中のものがあなたにエラーを与えていることを意味するならば、二重バックスラッシュを一つずつに変更してください。私は明らかにそれらを掲示し、マークダウン構文を正しく動作させるために間違いを犯しました。 –

0

:回答を

awk 'l2{print l2} {l2=l1; l1=$0} END{sub(/,$/,"",l2); print l2 "\n" l1}' file 
関連する問題