LINUX.ORG.RU

shell скрипт


0

0

необходимо написать скрипт, который ищет в текущем каталоге файлы abc??.log, удаляет их, а первые строчки копирует в файлы def??.log подскажите, как это реализовать


Если файлов не много, то примерно так:

#!/bin/bash
for i in abc??.log; do
    def=$( echo "${i}" | sed 's,abc\(..\)\.log,def\1.log,' )
    head -n 1 "${i}" >"${def}"
    rm -v "${i}"
done

Deleted
()
for f in abc???.log; do
  head -n 12 $f > def`echo $f | sed 's,^abc,,; s,\.log$,,'`.log
  rm $f;
done
ip1981 ☆☆
()
ls -1 abc??.log | while read file; do head -n1 $file > def${file:3:9}; rm $file; done

Одной строкой, строго под условие.

GotF ★★★★★
()
Ответ на: комментарий от varf

ls | grep '^abc..\.log$' | sed 's/^abc\(..\)/head -n1 abc\1.log > def\1.log; rm -f abc\1/' | sh -s

dilmah ★★★★★
()
sed -i '2,$d' abs*.log
rename 's/abs/def/' abs*.log
sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.