файлдағы әрбір жолдан кейін қосымша жолдар қосу

файлдағы әрбір жолдан кейін қосымша жолдар қосу

1000-ға жуық жол файлына келесі тапсырма бойынша көмек керек.

INPUT

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

OUTPUT

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

Мен мына пәрменді жаңа жолды және бірінші бөлімді қосуға болатынын білемін.

    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
қосылды
Wow skwllsp. Көп рақмет. Ол жақсы жұмыс істейді.
қосылды автор 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
қосылды