如何使用 shell 或 perl 在目录中所有 .c 文件的开头添加 2 行

发布于 2024-12-11 15:59:28 字数 96 浏览 0 评论 0原文

我的目录中有很多 .c 文件和 .h 文件。我需要在所有 .c 的开头添加一条注释,例如“// INFO:这是 raj 编写的 C 文件”。您能告诉我如何使用脚本来做到这一点吗?

I have lots of .c files and .h files in a directory. I need to add a comment at the start of all the .c like "// INFO: THis is C Files written by raj". Can you please tell how to do this with the script?.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

远山浅 2024-12-18 15:59:28

听起来像是一次性任务,因此一种简单的方法是执行以下操作:

for x in *.c *.h; do
    echo "//INFO This is C Files written by raj" > $x.temp-file
    cat $x >> $x.temp-file
    mv $x.temp-file $x
done

当然,请确保先备份文件。

Sounds like a one-shot task so an easy approach is to do something like this:

for x in *.c *.h; do
    echo "//INFO This is C Files written by raj" > $x.temp-file
    cat $x >> $x.temp-file
    mv $x.temp-file $x
done

Of course, make sure you backup your files first.

甜妞爱困 2024-12-18 15:59:28

使用 sed

find cpath-to-find -type f -name '*.c' -o -name '*.h' -execdir \
 sed '1i\//INFO This is C Files written by raj' {} \+

使用 awk

find cpath-to-find -type f -name '*.c' -o -name '*.h' -execdir \
awk ' NR == 1 { print "//INFO This is C Files written by raj"; } {print;}'

With sed:

find cpath-to-find -type f -name '*.c' -o -name '*.h' -execdir \
 sed '1i\//INFO This is C Files written by raj' {} \+

With awk:

find cpath-to-find -type f -name '*.c' -o -name '*.h' -execdir \
awk ' NR == 1 { print "//INFO This is C Files written by raj"; } {print;}'
栀子花开つ 2024-12-18 15:59:28

简短的一句话:

perl -pi -we 'local $/; s#^#//comment\n#;' *.c *.h

说明:

  • 使用 -pi 进行就地编辑(如果您想要备份:-i
    例如-i.bak)。
  • 仅使用 slurp 模式(通过将 $/ 设置为 undef 来读取整个文件)
    影响第一行。
  • 使用 shell glob 来查找文件。

Quick one-liner:

perl -pi -we 'local $/; s#^#//comment\n#;' *.c *.h

Explanation:

  • Using in-place edit with -pi (if you want backups: -i<extension>,
    e.g. -i.bak).
  • Use slurp mode (read whole file by setting $/ to undef) to only
    affect first line.
  • Use a shell glob to find the files.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文