Bashから末尾のカンマセットを削除するには:
a,b,c,d,,,,
1,2,3,,,,
希望の出力:
a,b,c,d
1,2,3
この試み:
grep "5628" test.csv | sed 's/,*$//g'
しかし、うまくいきません。このファイルは、元のWindowsコンピュータからインポートされます。
答え1
指定したコマンドを再入力してください。
grep "5628" test.csv | sed 's/,*$//g'
これにより、末尾のコンマが削除された「5628」に一致する行が出力されます。ファイルを更新しませんtest.csv
。
ただし、ファイルがWindowsシステムからのものであることを示すため、行末はNLではなくCR / NLです。結果は行末に隠されたCRです。コマンドラインが必要です。
grep "5628" test.csv | sed 's/,*\r*$//'
実際、これを単一のコマンドで単純化できます。
sed -n '/5628/s/,*\r*$//p' test.csv
答え2
sed -n '/5628/ s/,*\r*$//p' test.csv
(ちょうど最後の昏睡の除去を要求したOPではありません)これはパイプラインプロセスを避け、sedがフィルタと変換を直接実行します。