![在 shell 脚本中添加文件名作为文件的第一行](https://linux22.com/image/77614/%E5%9C%A8%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%B7%BB%E5%8A%A0%E6%96%87%E4%BB%B6%E5%90%8D%E4%BD%9C%E4%B8%BA%E6%96%87%E4%BB%B6%E7%9A%84%E7%AC%AC%E4%B8%80%E8%A1%8C.png)
您好,提前致谢。
我需要获取一个文件,插入文件名作为文件的第一行,然后移动到不同的名称。这就是皱纹。我需要以 格式获取最旧的文件ORIGFILE_YYYYMMDD.TXT
并将其另存为NEWFILE.TXT
.对于此示例,假设文件名是ORIGFILE_20151117.TXT
- 抓取最旧的文件 (
ls -tr ORIGFILE*.txt
) - 添加
ORIGFILE_20151117.TXT
为文件的第一行 - 重命名/移动
ORIGFILE_20151117.TXT
到NEWFILE.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