我有一个包含两列的 CSV 文件。第一个是 ID (int),第二个是文本。所有行都有 ID 列。我想删除第二列为空(零长度或仅空格)的文件。
我试过
sed -i '/^[0-9]+,\s*$/d' file.csv
但它不起作用。
答案1
您需要转义+
或使用\{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