क्या कोई इतना दयालु होगा और मुझे इस बात का संकेत देगा कि इससे एक-लाइनर कैसे बनाया जाए? या शायद sed / awk / xargs का उपयोग करें? या पर्ल? या बस इसे सरल बनाएं
मैंने स्टैकएक्सचेंज की खोज करके और कुछ स्क्रिप्ट्स को संपादित करके इसे हासिल किया है, लेकिन मैं यह देखना चाहता हूं कि इसे प्रो की तरह कैसे बनाया जाए।
मैं इसमें रैंडम टेक्स्ट वाली फाइलें बना रहा हूं। मुझे नहीं पता कि कितनी फाइलें बनाई जाएंगी, कृपया समझाएं:
< /dev/urandom tr -dc "\t\n [:alnum:]" | dd of=./filemaster bs=100000000 count=1 && split -b 50 -a 10 ./filemaster && rm ./filemaster
मैं उन फ़ाइलनामों को fnames1.txt फ़ाइल में सूचीबद्ध कर रहा हूँ:
ls >> fnames1.txt
मैं फ़ाइल नाम जनरेट कर रहा हूं जो मैं किसी अन्य फ़ाइल में चाहता हूं - fnames2.txt
list=echo {a..z} ; for c1 in $list ; do for c2 in $list ; do echo $c1$c2.ext; done; done >> fnames2.txt
मैं उन फ़ाइलों को दो कॉलम के साथ एक फ़ाइल में मर्ज करता हूं:
paste fnames1.txt fnames2.txt | column -s $'\t' -t >> fn.txt
मैं कॉलम के साथ फ़ाइल के अनुसार फ़ाइल नाम बदल रहा हूं (त्रुटियों के कारण उत्पन्न फाइल से अधिक फाइलें हैं, वास्तव में फ़ाइल नाम की इस राशि को कैसे बदला जाए? - मुझे पता है कि मैं 2> / देव / अशक्त के साथ त्रुटियों को अनदेखा कर सकता हूं):
while read -r line; do mv $line; done < fn.txt
मैं फाइल को एक्सटेंशन के साथ ले जा रहा हूँ, मुझे एक और dir चाहिए:
mkdir files && mv ./*.ext ./files/ && cd files
मुझे उन फ़ाइलों को फिर से लिखना होगा क्योंकि सामग्री को बड़ा करने की आवश्यकता है:
for file in *; do < /dev/urandom tr -dc "\t\n [:alnum:]" | head -c1500 > "$file"; done
क्या कोई मुझे बेहतर तरीके से बता सकता है, या इससे एक-लाइनर बना सकता है? मैं वास्तव में इसकी सराहना करता हूं, क्योंकि मैं सीख रहा हूं कि वन-लाइनर्स कैसे करें।
list=echo {a..z}
कई प्रकार से टूटी है।
/dev/urandom
सीधे नहीं कर सकते हैं? (और आप दिलचस्प होने के लिए एक प्रोग्रामर का इवोल्यूशन पा सकते हैं ।);
a
(से 25 तर्क के साथ b
करने के लिए z
) और वातावरण चर के साथ list
मूल्य के साथ परिभाषित echo
। अपेक्षित परिणाम होगा -bash: a: command not found
।
cmd1
औरcmd2
कहकरcmd1 && cmd2
।