Unix 将版权信息插入多个文件
您如何在每个文件的顶部插入版权信息Unix 将版权信息插入多个文件,unix,shell,scripting,Unix,Shell,Scripting,您如何在每个文件的顶部插入版权信息 #!/bin/bash for file in *; do echo "Copyright" > tempfile; cat $file >> tempfile; mv tempfile $file; done 递归解决方案(查找所有子目录中的所有.txt文件): 谨慎使用;如果文件名中存在空格,则可能会出现意外行为。您可以使用此简单脚本 #!/bin/bash # Usage: script.sh file cat cop
#!/bin/bash
for file in *; do
echo "Copyright" > tempfile;
cat $file >> tempfile;
mv tempfile $file;
done
递归解决方案(查找所有子目录中的所有.txt
文件):
谨慎使用;如果文件名中存在空格,则可能会出现意外行为。您可以使用此简单脚本
#!/bin/bash
# Usage: script.sh file
cat copyright.tpl $1 > tmp
mv $1 $1.tmp # optional
mv tmp $1
可以通过查找实用程序管理文件列表
echo "Copyright" > tempfile
sed -i.bak "1i $(<tempfile)" file*
如果您有bash 4.0,则可以递归执行此操作
#!/bin/bash
shopt -s nullglob
shopt -s globstar
for file in /path/**
do
if [ -f "$file" ];then
echo "Copyright" > tempfile
cat "$file" >> tempfile;
mv tempfile "$file";
fi
done
或者使用find
find /path -type f | while read -r file
do
echo "Copyright" > tempfile
cat "$file" >> tempfile;
mv tempfile "$file";
done
在Mac OSX中工作:
#!/usr/bin/env bash
for f in `find . -iname "*.ts"`; do # just for *.ts files
echo -e "/*\n * My Company \n *\n * Copyright © 2018 MyCompany. All rights reserved.\n *\n *\n */" > tmpfile
cat $f >> tmpfile
mv tmpfile $f
done
+1对于他的下一个技巧,Paul将使用
perl-e
+1 Nice在5个字节内完成它!将进入我的工具库。我想知道,怎样才能使它递归?@Byron Whitlock:为什么是perl?sed只适用于递归,将*
替换为$(find.)
第二版for循环,如果文件有空格,find将出现问题。做得很好。你在这里介绍了很多技巧。我以后再研究。非常感谢。
find /path -type f | while read -r file
do
echo "Copyright" > tempfile
cat "$file" >> tempfile;
mv tempfile "$file";
done
#!/usr/bin/env bash
for f in `find . -iname "*.ts"`; do # just for *.ts files
echo -e "/*\n * My Company \n *\n * Copyright © 2018 MyCompany. All rights reserved.\n *\n *\n */" > tmpfile
cat $f >> tmpfile
mv tmpfile $f
done