![n에서 m까지 빈 열이 있는 행을 얻는 방법](https://linux55.com/image/101428/n%EC%97%90%EC%84%9C%20m%EA%B9%8C%EC%A7%80%20%EB%B9%88%20%EC%97%B4%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%ED%96%89%EC%9D%84%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
다음과 같은 CSV 파일이 있습니다.
aaa,vvv,,,,
bbb,qqq,,,vvv,
ccc,www,iii,,,kkk
ddd,rrr,,,lll,
eee,ttt,ooo,sss,ggg,jjj
fff,yyy,ppp,,,
n~m번째 열이 비어 있는 행을 가져오고 싶습니다. (이 경우: 3~4번째 열이 비어 있는 행을 가져옵니다.)
그런 다음 다음과 같이 출력을 얻으십시오.
bbb,qqq,,,vvv,
ddd,rrr,,,lll,
실제로는 awk를 사용하여 특정 범위 열이 비어 있는 행을 가져오고 싶습니다.
awk -F, '$n-$m=="" {print}' file.csv
awk -F, '$3-$4=="" {print}' file.csv
답변1
일방 통행:
awk -F, -v st=3 -v end=4 '{for(i=st;i<=end;i++){if($i){next;}}}1' file
답변2
@Guru의 솔루션은 awk
아마도 이보다 이식성이 더 높지만 grep
다음 용도로 사용됩니다.이 특정예:
egrep '^[a-z]*,[a-z]*,{3}[a-z]' csv
bbb,qqq,,,vvv,
ddd,rrr,,,lll,
csv
이 파일은 어디에 있습니까:
cat csv
aaa,vvv,,,,
bbb,qqq,,,vvv,
ccc,www,iii,,,kkk
ddd,rrr,,,lll,
eee,ttt,ooo,sss,ggg,jjj
fff,yyy,ppp,,,
grep --version
grep (BSD grep) 2.5.1-FreeBSD