किसी फ़ाइल में प्रत्येक पंक्ति के बाद अतिरिक्त लाइनें जोड़ना

किसी फ़ाइल में प्रत्येक पंक्ति के बाद अतिरिक्त लाइनें जोड़ना

मुझे लगभग 1000 लाइनों की फ़ाइल के लिए निम्न कार्य के लिए मदद चाहिए।

इनपुट

    ./create.pl     1eaj.out
    ./create.pl     1ezg.out
    ./create.pl     1f41.out
    ...

आउटपुट

    ./create.pl     1eaj.out
    mv complex.* 1eaj
    ./create.pl     1ezg.out
    mv complex.* 1ezg
    ./create.pl     1f41.out
    mv complex.* 1f41
    ...

I know following command can add the new line and first part which makes the आउटपुट like below.

    awk ' {print;} NR % 1 == 0 { print "mv complex.*  "; }'

    ./create.pl     1eaj.out
    mv complex.* 
    ./create.pl     1ezg.out
    mv complex.* 
    ./create.pl     1f41.out
    mv complex.* 
    ...

बाकी काम कैसे करें? आपका अग्रिम रूप से बोहोत धन्यवाद।

1
आप जो चाहते हैं उसे प्राप्त करने के लिए एक लूप लिखने पर विचार कर सकते हैं।
जोड़ा लेखक Bernhard, स्रोत

7 उत्तर

आप लगभग वहाँ थे:

$ awk '{print $1, $2, "\nmv complex.*", $2}' file
./create.pl 1eaj.out 
mv complex.* 1eaj.out
./create.pl 1ezg.out 
mv complex.* 1ezg.out
./create.pl 1f41.out 
mv complex.* 1f41.out
3
जोड़ा

आप लगभग वहाँ थे:

$ awk '{print $1, $2, "\nmv complex.*", $2}' file
./create.pl 1eaj.out 
mv complex.* 1eaj.out
./create.pl 1ezg.out 
mv complex.* 1ezg.out
./create.pl 1f41.out 
mv complex.* 1f41.out
3
जोड़ा

आप लगभग वहाँ थे:

$ awk '{print $1, $2, "\nmv complex.*", $2}' file
./create.pl 1eaj.out 
mv complex.* 1eaj.out
./create.pl 1ezg.out 
mv complex.* 1ezg.out
./create.pl 1f41.out 
mv complex.* 1f41.out
3
जोड़ा

मेरा प्रयास:

sed -n 's/^\(\.\/create\.pl\)\s*\(.*\)\.out$/\1 \2.out\nmv complex.* \2/p' s.txt

or using && between ./create.pl and mv (since mv is likely needed only when ./create.pl is correctly executed):

sed -n 's/^\(\.\/create\.pl\)\s*\(.*\)\.out$/\1 \2.out \&\& mv complex.* \2/p' s.txt

जो देता है:

./create.pl 1eaj.out && mv complex.* 1eaj
./create.pl 1ezg.out && mv complex.* 1ezg
./create.pl 1f41.out && mv complex.* 1f41
3
जोड़ा
वाह स्कोल्प्स। बहुत बहुत धन्यवाद। यह ठीक काम कर रहा है।
जोड़ा लेखक user2176228, स्रोत

व्हाट्सएप या डॉट्स का उपयोग करें सीमांकक के रूप में शब्द को आप की जरूरत को निकालने के लिए:

awk -F '[[:blank:].]+' '{print; print "mv complex.*", $4}' filename
2
जोड़ा

व्हाट्सएप या डॉट्स का उपयोग करें सीमांकक के रूप में शब्द को आप की जरूरत को निकालने के लिए:

awk -F '[[:blank:].]+' '{print; print "mv complex.*", $4}' filename
2
जोड़ा

व्हाट्सएप या डॉट्स का उपयोग करें सीमांकक के रूप में शब्द को आप की जरूरत को निकालने के लिए:

awk -F '[[:blank:].]+' '{print; print "mv complex.*", $4}' filename
2
जोड़ा