Sed

通過 sed 刪除 CSV 中帶有空欄位的行

  • December 17, 2021

我有一個包含兩列的 CSV 文件。第一個是 ID (int),第二個是文本。所有行都有 ID 列。我想刪除第二列為空的文件(零長度或僅限空格)。

我試過了

sed -i '/^[0-9]+,\s*$/d' file.csv

但它不起作用。

您需要轉義+或使用\{1,\}或添加-E擴展正則表達式:

sed -i '/^[0-9]\+,\s*$/d' file.csv
sed -i '/^[0-9]\{1,\},\s*$/d' file.csv
sed -Ei '/^[0-9]+,\s*$/d' file.csv

或使用grep

grep -v '^[0-9]\+, *$' file.csv

但是,我更喜歡合適的 csv 解析器:

csvgrep -S -c2 -r '.' file.csv

引用自:https://unix.stackexchange.com/questions/682875