Добавление символов в начало и конец строки, начинающейся с определенной строки - PullRequest
1 голос
/ 30 марта 2011

У меня довольно много html-файлов, где мне нужно закомментировать конкретную строку JavaScript:

<script src="/common/javascript/jquery/jquery.tools-1.2.4.min.js" type="text/javascript"></script>

То, что я хотел бы сделать через командную строку, это поиск .htm файлов в каталоге по строке: "/common/javascript/jquery/jquery.tools-1.2.4.min.js" и добавить <!-- в начало соответствующей строки, содержащей строку, и --> до конца строки.

Некоторые файлы включают type=, а некоторые - нет, поэтому я хотел бы выполнить поиск по значению src и добавить в начало и конец строки.

Спасибо за помощь. Я ценю это.

Ответы [ 2 ]

1 голос
/ 30 марта 2011

Будет выведен измененный файл, если вы замените "всю эту строку" всей этой строкой js, которую вы хотите закомментировать.

sed 's/\(that whole line\)/<<!--\1-->/' file.htm

Теперь просто выполните итерацию по всемфайлы в каталоге

for f in *htm; do sed 's/\(that whole line\)/<<!--\1-->/' $f > $f.new done

Я позволю вам выяснить, как обрабатывать их перемещение к нужным именам файлов.(Может быть, новый директор? Может быть, команда mv? Что лучше в вашей ситуации.)

0 голосов
/ 30 марта 2011

Это то, что вы хотите?

for f in *.htm*; do
  mv "$f" "$f.tmp"
  sed 's#^\(.*common/javascript/jquery/jquery.tools-1.2.4.min.js.*\)#<!-- \1 -->#' "$f.tmp" > "$f"
  rm "$f.tmp" ;
done
...