Как заменить текст в текстовом файле, используя скрипт .SH file? - PullRequest
0 голосов
/ 29 марта 2011

Итак, я хочу создать скрипт, который принимает 3 аргумента - путь к файлу, точное слово для замены и на что его заменить.Как создать такую ​​вещь?

Вообще я хочу6, чтобы она имела api вроде sudo script.sh "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"

Ответы [ 3 ]

4 голосов
/ 29 марта 2011

Вам не нужен скрипт, подойдет простой sed (если вы работаете под Cygwin или POSIX-совместимой ОС):

sed -i '' 's/_WORD_TO_REPLACE_/WordTo Use/' "C:/myTextDoc.xml"
2 голосов
/ 29 марта 2011

Как то так?

#!/bin/bash
sed -e "s/$2/$3/g" <$1 >$1.$$ && cp $1.$$ $1 && rm $1.$$

В качестве альтернативы, вы можете использовать одну команду

sed -i -e "s/$2/$3/g" $1

как предположил Ян. Я обычно использую первую форму самостоятельно. Я видел системы, где -i не поддерживается (SunOS).

Это заменит все экземпляры второго аргумента третьим в файле, переданном как первый. Например, ./replace file oldword newword

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

Рубин (1,9 +)

$ ruby -i.bak -ne 'print $_.gsub(/WORD_TO_REPLACE/,"New Word")' /path/to/file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...