如何在目录下的所有文件中附加一行?

时间:2013-09-10 12:07:36

标签: ios macos awk

我有一个包含50个文件的目录,我需要做的是在echo文件中添加一个新文本,例如'thelastline`,我不知道如何在mac os中执行此操作

3 个答案:

答案 0 :(得分:2)

sed -i '$athelastline' /path/*.file

如果您使用的是bsd sed,则-i选项为-i ''

sed -i '' '$athelastline' /path/*.file

答案 1 :(得分:1)

查找当前目录及以下的所有文件,并将lastline附加到每个文件:

$ find . -type f -exec sed -i '$a lastline' {} \;

答案 2 :(得分:1)

在OSX下,使用sed这可能是最简单的,但您似乎在询问如何使用awk执行此操作,因此这是一种nawk兼容的方式(假设你的文件名中没有奇怪的字符):

for f in *; do 
  awk '1; END { print "thelastline" }' "$f" > /tmp/tmpfile
  mv /tmp/tmpfile "$f"
done

如果您使用zsh,有一个很好的习惯用法可以将内容添加到当前目录中的所有文件中:

<<<"thelastline" >>*

请注意,multios需要启用。