sed를 통해 CSV에서 빈 필드가 있는 행 삭제

sed를 통해 CSV에서 빈 필드가 있는 행 삭제

두 개의 열이 있는 CSV 파일이 있습니다. 첫 번째는 ID(int)이고 두 번째는 텍스트입니다. 모든 행에는 ID 열이 있습니다. 두 번째 열이 비어 있는(길이가 0이거나 공백임) 파일을 삭제하고 싶습니다.

나는 노력했다

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

관련 정보