我只想從看起來像這樣的 csv 檔案中修剪前導空格:
thing1,thing2, thing something3,thing4
thing11,thing12, thing something13,thing14
etc.
(注意:我想在thing和之間保留空格something3)
所以我的輸出是這樣的:
thing1,thing2,thing something3,thing4
thing11,thing12,thing something13,thing14
我已經嘗試使用通過awk '{$1=$1};1' file快速谷歌搜索找到的十幾種其他解決方案,但在我的情況下,這些解決方案通常要么凍結,要么什么也不做。
希望有人能幫幫我,加油!
uj5u.com熱心網友回復:
sed 's/,[[:blank:]]*/,/g' file
例子:
> cat test.txt
thing1,thing2, thing something3,thing4
thing12,thing12, thing something13,thing14
> cat test.txt | sed 's/,[[:blank:]]*/,/g'
thing1,thing2,thing something3,thing4
thing12,thing12,thing something13,thing14
uj5u.com熱心網友回復:
和:
cat file
thing1,thing2, thing something3,thing4
thing12,thing12, thing something13,thing14
在 awk 中,您可以處理未參考的 csv 并洗掉尾隨空格,如下所示:
awk 'BEGIN{FS=",[[:space:]]*"; OFS=","}
{$1=$1}1' file
印刷:
thing1,thing2,thing something3,thing4
thing11,thing12,thing something13,thing14
假設您參考了 csv 并且您只想更改 csv 分隔符 - 而不是參考欄位中的嵌入逗號,您應該使用 csv 決議器。
鑒于:
cat file
thing1,thing2, thing something3,"thing4, and 5"
thing11,thing12, thing something13,thing14
在最簡單的命令列的CSV決議器ruby:
ruby -r CSV -e 'CSV.parse($<.read).each{|l| puts l.map(&:lstrip).to_csv}' file
印刷:
thing1,thing2,thing something3,"thing4, and 5"
thing11,thing12,thing something13,thing14
uj5u.com熱心網友回復:
也awk可以測驗:
awk 'gsub(/, */, ",") 1' file
thing1,thing2,thing something3,thing4
thing12,thing12,thing something13,thing14
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/373439.html
上一篇:Bash洗掉包含某些檔案的目錄
