ग्लेन जैकमैन के उत्तर पर एक मामूली बदलाव का उपयोग करते हुए paste
: यदि -d
सीमांकक विकल्प के लिए मान में एक से अधिक वर्ण हैं, तो एक- paste
एक करके वर्णों के माध्यम से चक्र, और -s
विकल्पों के साथ संयुक्त एक ही इनपुट फ़ाइल को संसाधित करते समय ऐसा करता रहता है।
इसका मतलब यह है कि हम विभाजक के रूप में जो कुछ भी चाहते हैं उसका उपयोग कर सकते हैं \n
और एक समय में दो लाइनों को मर्ज करने के लिए भागने का क्रम ।
अल्पविराम का उपयोग करना:
$ paste -s -d ',\n' infile
KEY 4048:1736 string,3
KEY 0:1772 string,1
KEY 4192:1349 string,1
KEY 7329:2407 string,2
KEY 0:1774 string,1
और डॉलर का चिह्न:
$ paste -s -d '$\n' infile
KEY 4048:1736 string$3
KEY 0:1772 string$1
KEY 4192:1349 string$1
KEY 7329:2407 string$2
KEY 0:1774 string$1
यह जो नहीं कर सकता है वह एक विभाजक का उपयोग करता है जिसमें कई वर्ण हैं।
एक बोनस के रूप में, यदि paste
POSIX का अनुपालन होता है, तो यह फ़ाइल में अंतिम पंक्ति की नई रेखा को संशोधित नहीं करेगा, इसलिए एक इनपुट फ़ाइल के लिए विषम संख्या में लाइनों की तरह
KEY 4048:1736 string
3
KEY 0:1772 string
paste
अंतिम पंक्ति पर जुदाई के चरित्र से निपटने नहीं होगा:
$ paste -s -d ',\n' infile
KEY 4048:1736 string,3
KEY 0:1772 string
pr
,paste
,awk
,xargs
,sed
औरpure bash
! ( बैशxargs
की तुलना में धीमा, धीमा है !)