在 shell 脚本中添加文件名作为文件的第一行

在 shell 脚本中添加文件名作为文件的第一行

您好,提前致谢。

我需要获取一个文件,插入文件名作为文件的第一行,然后移动到不同的名称。这就是皱纹。我需要以 格式获取最旧的文件ORIGFILE_YYYYMMDD.TXT并将其另存为NEWFILE.TXT.对于此示例,假设文件名是ORIGFILE_20151117.TXT

  1. 抓取最旧的文件 ( ls -tr ORIGFILE*.txt)
  2. 添加ORIGFILE_20151117.TXT为文件的第一行
  3. 重命名/移动 ORIGFILE_20151117.TXTNEWFILE.TXT

答案1

好吧,让我们将其分解为简单的步骤:

#!/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"

答案2

这就能解决问题:

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

相关内容