Sed
刪除行中的尾隨逗號
如何在 bash 中刪除一組尾隨逗號:
a,b,c,d,,,, 1,2,3,,,,
期望的輸出:
a,b,c,d 1,2,3
嘗試這樣做:
grep "5628" test.csv | sed 's/,*$//g'
但它不起作用。該文件最初來自 Windows 機器。
重新您提供的命令:
grep "5628" test.csv | sed 's/,*$//g'
這將輸出匹配“5628”的行,並刪除所有尾隨逗號。它不會更新文件
test.csv
。但是,您指出該文件來自 Windows 機器,因此行結尾是 CR/NL 而不僅僅是 NL。結果是在行尾有一個隱藏的 CR,你需要一個命令行來代替:
grep "5628" test.csv | sed 's/,*\r*$//'
實際上,您可以將其簡化為一個命令:
sed -n '/5628/s/,*\r*$//p' test.csv