일부 빈 항목이 포함된 테이블의 CSV 파일이 있습니다. 내 코드에서 각 줄의 모든 항목(첫 번째 항목 제외)을 보고 빈 항목의 수를 계산하고 > 각 줄의 빈 항목을 저장하고 이를 temp_file이라는 파일에 쉼표로 구분한 다음 코드에서 계산하도록 하고 싶습니다. 해당 파일을 입력하고 값을 제공합니다. 예를 들어 값이 그렇다면 출력은 3이 되어야 합니다.
이것이 내가 현재 가지고 있는 것입니다:
sed 1d ${FILENAME} | while read ln
do
echo $ln | tail -1 PMRExceptions.csv | tr "," "\n" | grep -nx '^$' | cut -d":" -f1
PMRNUM=echo $ln | awk -F"," '{print $2}'
PMRMGR=echo $ln | awk -F"," '{print $3}'
COUNT=less $TEMPFILE | wc -l
이 부분은 빈 항목의 수를 계산해야 합니다
while read line
do
columns=`head -1 $FILENAME | awk -F"," -v ln=$line '{print $ln}'`
무엇을 변경하더라도 내가 얻는 값은 0입니다. 항목이 임시 파일에 저장되어 있지 않다고 생각합니다.
답변1
awk
각 입력 줄(헤더 줄 제외)에서 빈 쉼표로 구분된 필드 수를 계산하는 데 사용됩니다 .
awk -F ',' 'NR > 1 { c=0; for (i = 1; i <= NF; ++i) if ($i == "") ++c; print c }' file.csv
이는 필드에 쉼표가 포함되어 있지 않다고 가정합니다.
예:
$ cat file.csv
A,B,C
1,,0
all,bar,none
my,field,here
no,data,
$ awk -F ',' 'NR > 1 { c=0; for (i = 1; i <= NF; ++i) if ($i == "") ++c; print c }' file.csv
1
0
0
1
관련된: