RTTI не существует для C ++.
blockquote>Это просто неправильно. Фактически, сам термин RTTI был придуман стандартом C ++. С другой стороны, RTTI не очень далеко продвигает отражение.
Самый легкий путь состоит в том, чтобы использовать sed (или жемчуг):
sed -i -e 's/abc/XYZ/g' /tmp/file.txt
, Который вызовет sed, чтобы сделать оперативное редактирование из-за -i
опция. Это можно назвать от удара.
, Если Вы действительно действительно хотите использовать просто удар, затем следующее может работать:
while read a; do
echo ${a//abc/XYZ}
done < /tmp/file.txt > /tmp/file.txt.t
mv /tmp/file.txt{.t,}
Это циклично выполняется по каждой строке, делая замену, и пишущий во временный файл (не хотите ударять вход). Перемещение в конце просто перемещается временный в настоящее имя.
Bash, как другие оболочки, является просто инструментом для координирования других команд. Обычно Вы попытались бы использовать стандартные команды UNIX, но можно, конечно, использовать Bash для вызова чего-либо, включая собственные скомпилированные программы, другие сценарии оболочки, Python и сценарии Perl и т.д.
В этом случае, существует несколько способов сделать это.
, Если Вы хотите считать файл и записать это в другой файл, делая поиск/замену, когда Вы идете, используйте sed:
sed 's/abc/XYZ/g' <infile >outfile
, Если Вы хотите отредактировать файл на месте (как будто открытие файла в редакторе, редактируя его, затем сохраняя его) инструкции по предоставлению к строчному редактору 'исключая'
echo "%s/abc/XYZ/g
w
q
" | ex file
Исключая похож на vi без полноэкранного режима. Можно дать ему те же команды, Вы были бы в vi's ':' подсказка.
Управление файлом обычно не делается Bash, но программами, вызванными Bash, например:
perl -pi -e 's/abc/XYZ/g' /tmp/file.txt
Эти -i
флаг говорит этому делать оперативную замену.
Видят man perlrun
для получения дополнительной информации, включая то, как взять резервное копирование исходного файла.
Вы также можете использовать команду ed для поиска и замены в файле:
# delete all lines matching foobar
ed -s test.txt <<< $'g/foobar/d\nw'
Подробнее см. сайт bash-hackers