несколько команд в sed с вводом xargs

Многие оболочки поддерживают подстановку команд, так что, например,

p=$(awk '{ print $1,$3 }' filename)

захватит вывод команды awk '{ print $1,$3 }' filename в переменную p. Обратите внимание, что ваш cat здесь лишний: awk может читать непосредственно из filename.

Однако я подозреваю, что на самом деле вы хотите обработать последовательные строки вывода awk и разобрать их на отдельные переменные. Если это так, вы можете сделать что-то вроде

awk '{print $1,$3}' filename | while read -r p1 p2; do grep -F "$p1" otherfile | grep -F "$p2"; done

для поиска строк в otherfile, которые соответствуют обоим полям $1 и $3 из filename.

0
13.03.2018, 06:09
1 ответ

Параметр для использования нескольких выражений с sed — -e, а не-E:

sed -e "s/:= *[0-9]+\.[0-9]+ *$/:= $var/g" -e "s/:= [0-9]+ *$/:= $var2/g"

Из руководства (, предполагая, что GNU использует тег ):

'-e SCRIPT'
'--expression=SCRIPT'
Add the commands in SCRIPT to the set of commands to be run while processing the input.

-Eпредназначен для использования расширенных регулярных выражений.

1
28.01.2020, 02:43

Теги

Похожие вопросы