Добавить имя файла в качестве первой строки файла в сценарии оболочки

Привет и спасибо заранее.

Мне нужно взять файл, вставить имя файла в первую строку файла, а затем перейти к другому имени. Вот морщина. Мне нужно захватить самый старый файл в формате ORIGFILE_YYYYMMDD.TXT и сохранить его как NEWFILE.TXT . Для этого примера предположим, что имя файла ORIGFILE_20151117.TXT

  1. Захватите самый старый файл ( ls -tr ORIGFILE*.txt )
  2. Добавить ORIGFILE_20151117.TXT качестве первой строки файла
  3. Переименуйте / перемещайте ORIGFILE_20151117.TXT в NEWFILE.TXT

2 Solutions collect form web for “Добавить имя файла в качестве первой строки файла в сценарии оболочки”

Это сделает трюк:

 f=$(ls -1tr ORIGFILE*.txt | head -1); echo $f | cat - $f > NEWFILE.txt && rm $f 

Ну, давайте разберем это на простые шаги:

 #!/bin/bash # First, let's get that file's name: FILE=$(ls -rt ORIGFILE*.txt | tail -n1) if [[ 0 -ne $? ]]; then echo "Unable to locate matching file. Aborting." 1>&2 exit 1 fi # Now, create a new file containing the file's name: echo "$FILE" > NEWFILE.TXT # And append the contents of the old file into the new: cat "$FILE" >> NEWFILE.TXT # Finally, get rid of the old file: (uncomment if you're sure) # rm "$FILE" 
  • Как проверить, существует ли один или оба из двух файлов?
  • Я хочу запустить команду cut, чтобы извлечь какой-либо столбец из большого файла и вставить его в другой файл:
  • проверка наибольшего количества определенной папки
  • Сломанная труба в моем rsync.sh
  • Как интегрировать многострочный awk-скрипт в сценарий оболочки
  • Синтаксис оболочки: как правильно использовать \ для разрыва строк?
  • Как повернуть все изображения в каталоге с помощью imagemagick?
  • Скопируйте файлы, исключая x, y, z, вызывая ошибку в сценарии оболочки
  • Передача именованных аргументов в сценарии оболочки
  • Рекурсивно сравнивать содержимое каталога по имени, игнорируя расширения файлов
  • Объединение нескольких файлов в один CSV
  • Linux и Unix - лучшая ОС в мире.