लिनक्स: फाइलों के बीच विभाजक के साथ बिल्ली


28

लिनक्स में यदि आप बिल्ली * टाइप करते हैं, तो आपको कुछ इस तरह मिलेगा:

file1 से पंक्ति 1
file1 से line2
करें 2 से पंक्ति 1
file3 से पंक्ति 1
file3 से line2
file3 से पंक्ति 3

मैं क्या करना चाहूँगा फ़ाइलों के बीच एक विभाजक प्रदर्शित करने के लिए। : कुछ इस तरह
file1 से पंक्ति 1
file1 से line2
XXXXXXXXXXXX
करें 2 से पंक्ति 1
XXXXXXXXXXXX
file3 से पंक्ति 1
file3 से line2
file3 से पंक्ति 3

दिल से टाइप करने के लिए एक लाइनर के साथ आसानी से संभव है?

जवाबों:


40

यदि आप विभाजक की उपस्थिति के बारे में बहुत उधम मचाते नहीं हैं:

tail -n +1 *

यह भी खूब रही! मुझे आश्चर्य है कि आपका आदेश पूंछ से अलग कैसे है -n 1 *। मैं या तो मैन पेज में +1 (1 से अधिक राथेन) के प्रभाव का उल्लेख नहीं कर सकता।
डेनियल

1
tail -n Xअंतिम एक्स लाइनें दिखाता है। tail -n +Xलाइन एक्स पर शुरू होता है 1 से शुरू , यानी, यह सब लेकिन (एक्स 1) लाइनों से पता चलता पहले।
गिलेस एसओ- बुराई को रोकना '

आह, अब मैं उस आदमी पृष्ठ में देख सकते हैं। मैंने इसे नजरअंदाज कर दिया। महान, धन्यवाद एक गुच्छा
Daniele

इसी तरह के समाधान इस लेख में हैं: everythingsysadmin.com/2012/09/unorthodoxunix.html
TomOnTime

बुरी टिप्पणी के लिए क्षमा करें, लेकिन यह बहुत बढ़िया है। धन्यवाद, @ गिल्स
माइक डी

17

cd /to/your/directory; for each in *; do cat $each; echo "XXXXXXXXXXX"; done


मुझे इसे हराया :-)
Sirex

फिर भी गाइल्स द्वारा प्रदान किया गया समाधान प्रभावशाली रूप से छोटा है!
बजे जेन पिक्केरनेन

वाह। आश्चर्य काम करता है। JSONs के एक फ़ोल्डर को बनाने में मेरी मदद की
मयंक चांडक

11
awk 'FNR==1 && NR!=1 {print "XXXXXXXXXXXX"}{print}' *

या

awk 'FNR==1 {print "XXXXXX", FILENAME, "XXXXXX"}{print}' *

या

awk 'FNR==1 {print "XXXXXX File no. " ++count, "XXXXXX"}{print}' *

केवल बैश (नहीं cat) का उपयोग करना :

for file in *; do printf "$(<"$file")\nXXXXXXXXXXXX\n"; done

संपादित करें:

AWK 4 में:

awk 'BEGINFILE {print "XXXXXXXXXXXX"}{print}' *

आप इस उत्तर में किसी भी विभाजक का उपयोग कर सकते हैं जैसे अन्य उदाहरणों में। यदि आप प्रत्येक फ़ाइल के अंत में विभाजक चाहते हैं, तो बदल BEGINFILEदें ENDFILE। यह अभी भी स्क्रिप्ट की शुरुआत में दिखाई दे सकता है क्योंकि यह एक सशर्त है (निष्पादन आदेश को लागू करने के बजाय) ।।


2
जाग के लिए +1! मैं कसम खाता हूँ कि यह कुछ भी कर सकता है ...
brad
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.