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

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

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

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

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

 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"