শূন্যের সাথে অনুপস্থিত মান ফাঁকা স্থান প্রতিস্থাপন


13

আমার কাছে 30K লাইনের চারপাশে ট্যাব-বিস্মৃত পাঠ্য ফাইল রয়েছে, আমি অনুপস্থিত মানের (যেমন ফাঁকা স্থান) জন্য প্রতিটি সারি (s1..s30K লাইন) পরীক্ষা করতে এবং অনুপস্থিত মানটি শূন্য মান দিয়ে পূরণ করতে চাই outআউট.টেক্সট দেখুন

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 '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>আসল টিএবির অক্ষরটি প্রতিস্থাপন করুন (সাধারণত আঘাত করার Ctrl-Vপরে প্রাপ্ত হয় Tab)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.