2011-09-28 11 views
6

के साथ निर्देशिका में सभी फ़ाइलों में शामिल हों, मेरे पास एक निर्देशिका है जिसमें सैकड़ों फाइलें हैं (प्रत्येक में कई वर्ण हैं)। मैं उन्हें एक विभाजक के साथ एक फ़ाइल में शामिल करना चाहता हूं, "|"।एक विभाजक

मैं

find . -type f | (while read line; do; cat $line; echo "|"; done;) > output.txt 

की कोशिश की लेकिन वह अनंत लूप बनाया।

उत्तर

9

आप -not -name output.txt का उपयोग कर (या के रूप में आप पहले से ही नीचे टिप्पणी में बताया, बस लक्ष्य निर्देशिका के बाहर आउटपुट फ़ाइल जगह) find के उत्पादन से output.txt बाहर कर सकते हैं।

उदाहरण के लिए:

find . -type f -not -name output.txt -exec cat {} \; -exec echo "|" \; > output.txt 

मैं भी स्वतंत्रता लिया है -exec पैरामीटर के एक जोड़े के साथ अपने while/cat/echo को बदलने के लिए तो हम एक भी find कॉल का उपयोग कर पूरी बात कर सकते हैं। के बाद से यह (output.txt समस्या वास्तव में कोई संबंध नहीं है) गूगल परिणामों में पहला है

+0

आह, सूचक के लिए धन्यवाद। यह मेरे लिए काम किया। -प्रकार एफ | (जबकि पढ़ने की रेखा; करो; बिल्ली $ लाइन; गूंज "|"; किया;;>>/output.txt' – Dogbert

+0

@ डोगबर्ट जो काम करेगा :)। बीटीडब्लू, आपको 'डू' यानी के बाद सेमीकॉलन की आवश्यकता नहीं है (जबकि लाइन पढ़ें, बिल्ली $ लाइन करें; गूंज करें "|"; किया;) ' –

+0

मैं सिर्फ यूनिक्स सीख रहा हूं, इसलिए इसके लिए भी धन्यवाद! – Dogbert

0

* प्रश्न के शीर्षक का जवाब करने के लिए,:

यह है कि मैं क्या फाइलों के साथ जावा अनुप्रयोग चलाने के लिए .jar फ़ाइलों में शामिल होने का उपयोग करें lib/ में:

EntityManagerStoreImpl

[email protected]:~/work/TOOLS/JawaBot/core$ ls 
catalog.xml nbactions.xml nb-configuration.xml pom.xml prepare.sh resources run.sh sql src target workdir 

[email protected]:~/work/TOOLS/JawaBot/core$ echo `ls -1` | sed 's/\W/:/g' 
catalog:xml:nbactions:xml:nb:configuration:xml:pom:xml:prepare:sh:resources:run:sh:sql:src:target:workdir 

फ़ाइल सूची पाठ्यक्रम find ... या कुछ भी साथ प्रतिस्थापित की हो सकती है।
echo रिक्त स्थान के साथ नई लाइनों को प्रतिस्थापित करने के लिए है।

अंतिम रूप:

java -cp $(echo `ls -1 *.jar` | sed 's/\W/:/g') com.foo.Bar 
संबंधित मुद्दे