शून्य के साथ लापता मान रिक्त स्थान की जगह


13

मेरे पास 30 किमी लाइनों के आसपास इनपुट-टेक्स्ट टैब-सीमांकित पाठ फ़ाइल है, मैं लापता मूल्य (यानी रिक्त स्थान) के लिए प्रत्येक पंक्ति (s1..s30K लाइनों) की जांच करना चाहता हूं और शून्य मान के साथ लापता मान भरें।

input.txt

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

out.txt

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

जवाबों:


14

आप इसे इस तरह से कर सकते हैं जैसे कि awk:

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

व्याख्या

एफएस और ओएफएस को टैब पर सेट करना सुनिश्चित करता है कि आउटपुट सही ढंग से सीमांकित है। फॉर-लूप हर क्षेत्र को देखता है और शून्य होने पर सेट करता है। अंत में एक के लिए एक आशुलिपि है { print $0 }


5

मुझे पसंद होगा:

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

<TAB>वास्तविक TAB चरित्र के साथ बदलें (आम तौर पर हिट द्वारा प्राप्त किया जाता है Ctrl-V, तब Tab)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.