сохраните этот скрипт в файл d
: ( ЗАГРУЗИТЕ ИЗ GITHUB GIST )
#!/bin/bash
LIST=${1:?"LIST word"}
FILE=${2:?"FILE name not set"}
L=$( sed -e ':a;N;$!ba;s_\n_\x00_g' ${LIST}|sed -e 's_\x00_ \\|_g' -e's_\(\\|\)*$__g')
P='s_\('$L'\)__ig'
O="sed -e '$P' ${FILE}"
eval "${O}"
затем запустите его:
bash ./d LIST FILE
, если вы хотите сохранить файл, вы можете запустить эту команду:
bash ./d LIST FILE | tee NewFILE
ИЛИ
bash ./d LIST FILE > NewFile
Я читаю СПИСОК СЛОВА и меняю его на регулярное выражение, например, я меняю вашу королеву
и король
и test
в этом формате:
queen\|king\|test
затем создайте команду sed
с этим параметром:
sed -e 's_\(queen\|king\|test\) *__ig' FILE
с помощью этого сценария bash мы читаем один раз LISTWORD
и один раз ФАЙЛ
для замены