Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 将版权信息插入多个文件_Unix_Shell_Scripting - Fatal编程技术网

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