Разбивка ответа ghostdog74:
awk '
/double/ {
gsub(/[(),\[\]]/, "")
print $2" "$1" "$3" "$8" "$10
}
'
/double/
приказывает awk
выполнять вещи в { }
только для строк, содержащих double
(/double/
- это регулярное выражение).
gsub
ожидает, что первый аргумент будет регулярным выражением, второй аргумент будет строкой подстановки, а третий аргумент будет переменной, над которой выполняется подстановка. Если третий аргумент не указан (как в этом случае), по умолчанию используется $0
, что соответствует всей строке.
Я добавил \[
и \]
к регулярному выражению, которое должно соответствовать [
и ]
символам в дополнение к (
, )
и ,
.
Как правило, когда вы комбинируете awk
, sed
или grep
, почти всегда есть способ сделать то, что вам нужно, с помощью sed
или awk
.