9 Stimmen

Copyright-Meldung in mehrere Dateien einfügen

Wie würden Sie einen Copyright-Hinweis ganz oben in jede Datei einfügen?

13voto

Paul Creasey Punkte 27679
#!/bin/bash
for file in *; do
  echo "Copyright" > tempfile;
  cat $file >> tempfile;
  mv tempfile $file;
done

Rekursive Lösung (findet alle .txt Dateien in allen Unterverzeichnissen):

#!/bin/bash
for file in $(find . -type f -name \*.txt); do
  echo "Copyright" > copyright-file.txt;
  echo "" >> copyright-file.txt;
  cat $file >> copyright-file.txt;
  mv copyright-file.txt $file;
done

Seien Sie vorsichtig; wenn Leerzeichen in Dateinamen vorhanden sind, kann es zu unerwartetem Verhalten kommen.

5voto

ghostdog74 Punkte 305138

Sed

echo "Copyright" > tempfile
sed -i.bak "1i $(<tempfile)"  file*

Oder Muschel

#!/bin/bash
shopt -s nullglob     
for file in *; do
  if [ -f "$file" ];then
    echo "Copyright" > tempfile
    cat "$file" >> tempfile;
    mv tempfile "$file";
  fi
done

um es rekursiv zu machen, wenn Sie bash 4.0 haben

#!/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

oder mit find

find /path -type f  | while read -r file
do
  echo "Copyright" > tempfile
  cat "$file" >> tempfile;
  mv tempfile "$file";
done

0voto

shuvalov Punkte 4395

Sie können dieses einfache Skript verwenden

#!/bin/bash

# Usage: script.sh file

cat copyright.tpl $1 > tmp
mv $1 $1.tmp # optional
mv tmp $1

Die Dateiliste kann über das Suchprogramm verwaltet werden

0voto

Juangui Jordán Punkte 5125

Arbeiten unter 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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X