Переименование и перемещение файлов из одного каталога в другой

Я не вижу смысла в конвейере. zless— это интерактивная программа, и вывод lsдолжен просматриваться , а не анализироваться.

Вместо:

... sh -c 'zgrep PATTERN /logs/my-log.*'

или, если файлов слишком много,

... sh -c 'for pathname in /logs/my-log.*; do zgrep PATTERN "$pathname"; done'

или, более эффективно,

... sh -c 'find /logs/ -maxdepth 1 -type f -name "my-log.*" -exec zgrep PATTERN {} +'
0
31.07.2020, 07:59
1 ответ

то, что вы хотите сделать

for FILENAME in /data/output/*.txt; 
do 
   mv "$FILENAME" "/data/archive/archive_$(basename  "$FILENAME")" ; 
done

это, конечно, может быть однорядным.

где

  • basename "$FILENAME"извлечь последнюю часть имени файла
  • basename "$FILENAME".txtбудет делать то же самое, полосая .txtчасть.

и при размещении здесь вы всегда должны цитировать имя файла.

1
18.03.2021, 23:15

Теги

Похожие вопросы