Как найти слово (например, «/ dn») в текстовом файле и добавить на следующей строке другое слово (например, «/ period»)?
Я хотел бы выполнить его используя MS DOS.
Я имею в виду, что это «/ dn» (после / dn есть пробел) - это одно слово (не фрагмент текста, а целое слово - после / dn может быть другим словом on ту же строку), которую я хочу найти, а затем после нее на следующей новой строке, не заменяя другие строки и другие слова. Я хочу создать новую строку между уже существующими строками.
Например, если у меня есть этот входной файл:
/dn
/name
Я хочу этот вывод:
/dn
/period
/name
и символ «/» должны быть с dn, а не без него.
Если file.txt содержит строку /dn, тогда вы можете запустить эту команду:
$ grep -i "\/dn" file.txt | xargs -I{} printf "%s\n/period" {}
Он выведет
/dn
/period
Если вы хотите получить новую строку со словом /period после каждой строки, содержащей /dn, используйте sed append:
sed '\:\dn:a/period' filename
выход для вашего образца будет:
/dn
/period
/name
Если вы хотите /period в конце следующей строки, используйте его следующим образом:
sed ':/dn: { N; s:$:/period: }' filename
Вот пример вход:
/dn
/name
и выход:
/dn
/name /period
Сначала мы ищем строки с /dn, затем добавляем /period в конце следующей строки [$) (N;).
Если file.txt содержит строку /dn, тогда вы можете запустить эту команду:
$ grep -i "\/dn" file.txt | xargs -I{} printf "%s\n/period" {}
Он выведет
/dn
/period
Если вы хотите получить новую строку со словом /period после каждой строки, содержащей /dn, используйте sed append:
sed '\:\dn:a/period' filename
выход для вашего образца будет:
/dn
/period
/name
Если вы хотите /period в конце следующей строки, используйте его следующим образом:
sed ':/dn: { N; s:$:/period: }' filename
Вот пример вход:
/dn
/name
и выход:
/dn
/name /period
Сначала мы ищем строки с /dn, затем добавляем /period в конце следующей строки [$) (N;).