Как я могу найти слово (например, "/dn") в текстовом файле и прибавить следующую строку другое слово (например, "/период")?
Я хотел бы выполнить его с помощью MS DOS.
Я имею в виду этот "/dn" (после того, как/dn является пространством), одно слово (не, фрагмент текста, но целое слово - после/dn может быть другим словом на той же строке), который я хочу найти и затем после него на следующей новой строке, не заменяя другие строки и другие слова. Я имею в виду, создают новую строку между уже существующими строками.
Например, если у меня есть этот входной файл:
/dn
/name
Я хочу этот вывод:
/dn
/period
/name
и "/" символ должен быть с dn, не без него.
sed
добавитьЕсли Вы хотите абсолютно новую строку со словом /period
после каждой строки, содержащей /dn
затем используйте sed
добавьте:
sed '\:\dn:a/period' filename
вывод для Вашего образца был бы:
/dn
/period
/name
:\dn:
поиск \dn
a/period
добавить /period
к следующей строке (новая строка).Если Вы хотите /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