मैं टेक्स्ट फ़ाइल की प्रत्येक पंक्ति की शुरुआत में एक पंक्ति संख्या और टैब कैसे जोड़ सकता हूं?
मैं टेक्स्ट फ़ाइल की प्रत्येक पंक्ति की शुरुआत में एक पंक्ति संख्या और टैब कैसे जोड़ सकता हूं?
जवाबों:
awk '{printf "%d\t%s\n", NR, $0}' < filename
awk '{print NR, "\t", $0}'
।
nl
भी गलत है। स्रोत कोड में, यह आपको कभी भी सही लाइन नंबर नहीं देगा, क्योंकि यह केवल व्हाट्सएप के साथ लाइनों की गणना नहीं करता है।
Nl कमांड को यह करना चाहिए, लेकिन यह लाइन नंबर से पहले भी स्थान जोड़ता है। यह लिनक्स कोर्यूटिल्स का हिस्सा है।
nl lines.txt
1 $bkWTN
2 $cV8$.
nl
संख्या से पहले अंतरिक्ष को छोड़ना बता सकते हैं । बस -w1
एक नंबर के लिए न्यूनतम चौड़ाई बताने के लिए विकल्प का उपयोग करें 1.
-nln
आप कर सकते हैं बाएं औचित्य साबित आप लाइन नंबर से पहले अंतरिक्ष (रों) नहीं करना चाहते हैं। इसके अलावा, एक टैब विभाजक निर्दिष्ट करने के लिए जिसका आप उपयोग कर सकते हैं -s$'\t'
या -s' '
( ctrl+v
तब के साथ एकल उद्धरणों के बीच एक टैब डालें tab
)।
nl -w1
(जीएनयू कोर्यूटिल्स 8.24 से) लाइन नंबरों को कम नहीं करता है ।
sed = test.txt | sed 'N;s/\n/\t/'
कमांड "sed =" लाइन नंबर प्रिंट करेगा जिसके बाद एक गाड़ी वापसी और फिर अगली लाइन होगी।
अभिव्यक्ति "N; s / \ n / \ t /" प्रत्येक पंक्ति को ले जाएगी, अगली पंक्ति (यानी लाइन नंबर और लाइन) प्राप्त करेगी, और एक टैब के साथ गाड़ी वापसी को प्रतिस्थापित करेगी।
\n
लाइन फ़ीड (आमतौर पर इसे सिर्फ "न्यूलाइन" कहा जाता है, क्योंकि इसका पहला व्यापक उपयोग यूनिक्स में था), और \r
कैरिज रिटर्न है। Windows का उपयोग करता है \r\n
(के रूप में भी जाना जाता है CRLF
)।
कैसा रहेगा
cat -n somefile.txt
?
ठीक है, यहाँ एक लाइन बैश समाधान है:
$ IFS=$'\n';x=1;for l in $(<file.txt);do echo -e "$x\t$l";((x+=1));done
$ IFS=
पहली IFS सेटिंग एक समय में पूरी लाइन पढ़ने के लिए बैश बताती है। दूसरी पंक्ति डिफ़ॉल्ट रूप से IFS को रीसेट करती है।
अतिरिक्त बोनस के रूप में, यह आपके शेल में पूरी तरह से चलता है और किसी प्रोग्राम को निष्पादित नहीं करता है!
ठीक है, चूंकि हम ऐसा करने के तरीके एकत्र कर रहे हैं,
grep -n . file.txt | sed 's/\(^[0-9]*\):/\1 /g'
# this is a tab with Ctrl-V + Tab =====> ----
sed file.txt -e 's/^/\t/' | cat -n | sed -e 's/^\t//'
या कुछ गैर-जीएनयू sed
एस के लिए:
cat file.txt | sed -e 's/^/\\t/' | cat -n | sed -e 's/^\\t//'