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

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

Мне нужно взять файл, вставить имя файла в первую строку файла, а затем перейти к другому имени. Вот морщина. Мне нужно захватить самый старый файл в формате 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" 
  • Тело нулевого сообщения; надеюсь, что все в порядке
  • Запустить сценарий ожидания из другой оболочки
  • Escape whitespace в поиске для pdftk без xargs -J
  • Преобразование Bash to Fish: отображение пользовательского сообщения при записи CD в определенный каталог
  • Убедитесь, что $ REPLY находится в диапазоне номеров
  • Создание следующего доступного имени файла для шаблона (02-output.log и т. Д.)
  • Как убедиться, что встроенное эхо-сообщение оболочки вызвано так, что оно не отображается в списке процессов?
  • Работает в командной строке, но не в сценарии оболочки
  • Как grep аргумент командной строки, на который был применен RegEx?
  • Формат вывода Mysql в сценарии Bash
  • Выход, который я получаю через «echo», работает как команда при вставке в терминал, но не в скрипте
  • Linux и Unix - лучшая ОС в мире.