На самом деле это может быть псевдоним. - color
не обязательно должен быть в конце, а grep
всегда выполняет поиск в текущем каталоге с помощью -r
, если параметр каталога не задан (в минимум GNU grep
). Поэтому вы можете сделать:
alias mygrep='grep -rnIi --color'
Поведение поиска в текущем каталоге по умолчанию было введено в GNU grep 2.11
. Из журнала изменений :
Если файловый операнд не указан и задана опция командной строки -r или эквивалентная , grep теперь выполняет поиск в рабочем каталоге. Раньше grep игнорировал -r и искал стандартный ввод нерекурсивно. -r, найденный в GREP_OPTIONS, не имеет этого нового эффекта.
Итак, в версиях > = 2.11
из GNU grep
псевдоним будет следующим:
mygrep PATTERN [PATH...]
Для версий grep
до этого , вам придется указывать путь каждый раз, когда @ slm answer использование функции - лучший способ. Хотя вы можете добиться того же использования, что и выше, написав функцию следующим образом:
mygrep () { grep -rnIi --color "$1" "${2:-.}"; }
Предполагая, конечно, что нет требования, чтобы - color
был в конце, как в Q. ..
Используя XMLStarlet,и предполагая, что документ имеет корневой узел:
xmlstarlet ed \
-u '//context-param[param-name = "com.sun.faces.numberOfViewsInSession"]/param-value[. = 25]' \
-v 3 file.xml
Это выбирает правильный param-value
узел (тот, который имеет значение 25 (отбрасывает бит [. = 25]
, если старое значение неважно )и является дочерним узлом context-param
узел, param-name
дочерний узел которого имеет значение com.sun.faces.numberOfViewsInSession
), и изменяет его значение на 3.
Результирующий документ будет (со вставленным фальшивым root
узлом):
<?xml version="1.0"?>
<root>
<context-param>
<param-name>com.sun.faces.sendPoweredByHeader</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfViewsInSession</param-name>
<param-value>3</param-value>
</context-param>
<context-param>
<param-name>testing</param-name>
<param-value>25</param-value>
</context-param>
</root>
Используя приведенную ниже команду sed, мы можем обновить конкретное значение тега:-
sed -i '/<param-name>com.sun.faces.numberOfViewsInSession<\/param-name>/{n;s/<param-value>3<\/param-value>/<param-value>25<\/param-value>/}' test.xml