2012-07-09 10 views
25

ठीक है पर विशेष सूचकांक के पात्रों मुद्रित करने के लिए awk का उपयोग करना है, तो मुझे पता है कि यह $ का उपयोग कर एक लाइन के विशिष्ट तर्क मुद्रित करने के लिए काफी सरल है:एक लाइन

$ cat file 
hello world 

$ awk '{print $1}' file 
hello 

लेकिन क्या होगा अगर मैं के माध्यम से वर्ण 2 प्रिंट करना चाहते हैं 8? या 3 से 7? क्या यह अजीब के साथ संभव है?

उत्तर

42
awk '{print substr($0,2,6)}' file 

substr के लिए वाक्यविन्यास()

substr(string,start index,length)

+0

क्यों क्षेत्र विभाजक 'एफ = '\ n'' आवश्यक है? या यह है? – Levon

+0

@ लेवॉन जैसा कि मैंने सोचा था कि ओपी पूरे रिकॉर्ड के सबस्ट्रिंग को ढूंढना चाहता है, न कि क्षेत्र। – nims

+3

मैं थोड़ा उलझन में हूं, बहस करने की कोशिश नहीं कर रहा हूं, बस इसे अपने लिए सीधे प्राप्त करने के लिए। '$ 0' पहले से ही पूरी वर्तमान लाइन है, इसलिए यदि आप वर्तमान पूरी लाइन के सबस्ट्रिंग ले रहे हैं, तो मुझे नहीं लगता कि आपको '-F' निर्दिष्ट क्यों करना होगा .. मुझे यहां क्या याद आ रही है? – Levon

2

आप substr समारोह का उपयोग कर सकते यदि पर्ल एक विकल्प है:

perl -lne 'print substr($_,1,6)' file 

आउटपुट @nims से जवाब देने के लिए समान है

संबंधित मुद्दे