누락된 값 공간을 0으로 바꾸기

누락된 값 공간을 0으로 바꾸기

약 30K 줄이 있는 input.txt 탭으로 구분된 텍스트 파일이 있고 각 줄(s1..s30K 줄)에 누락된 값(예: 공백)이 있는지 확인하고 누락된 값을 0 값으로 채우고 싶습니다. 보세요.txt

입력.txt

 id  no1  no2  no3  no4
 s1  23   34   45   12
 s2       4    4      
 s3  4         8    0

출력.txt

id  no1  no2  no3  no4
s1  23   34   45   12
s2  0     4    4    0  
s3  4     0    8    0

답변1

awk로 이 작업을 수행할 수 있습니다.

awk 'BEGIN { FS = OFS = "\t" } { for(i=1; i<=NF; i++) if($i ~ /^ *$/) $i = 0 }; 1' file

설명하다

FS 및 OFS를 탭으로 설정하면 출력이 적절하게 구분됩니다. for 루프는 각 필드를 살펴보고 비어 있으면 0으로 설정합니다. 마지막은 의 약자입니다 { print $0 }.

답변2

나는 선호한다:

sed 's/<TAB> /<TAB>0/g' <input.txt >output.txt

<TAB>실제 TAB 문자로 대체 (보통 을 클릭한 Ctrl-V후 획득 Tab)

관련 정보