0

我有一个包含 50 个文件的目录,我需要做的是在 echo 文件中附加一个新文本,例如“thelastline”,我不知道在 mac os 中该怎么做

4

3 回答 3

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

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

sed -i '' '$athelastline' /path/*.file
于 2013-09-10T12:12:31.877 回答
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需要启用。

于 2013-09-10T13:04:23.020 回答
1

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

$ find . -type f -exec sed -i '$a lastline' {} \;
于 2013-09-10T12:16:30.673 回答