Парсинг строки awk и получает только элементы без каналов или полу двоеточий

Одна альтернатива ksplice kexec(). Вместо того, чтобы исправлять ядро Linux при выполнении, эта команда по существу заменяет текущее ядро новым, не перезагружая систему.

Для этого, чтобы быть доступным, это должно быть включено как параметр компилятора в ядре Вашего распределения - то есть, можно скомпилировать ядра без этой функциональности, таким образом, необходимо будет проверить, что это доступно, и/или включите его сами.

3
27.01.2013, 18:08
2 ответа

grep не необходимо, можно сделать это с awk один:

awk 'BEGIN{FS="|"} $1 == "AUGUSTYN" { print NR " " $1 " " $2 " " $3}'
2
27.01.2020, 21:28
  • 1
    +1. Можно использовать в своих интересах выходного разделителя полей awk (примите значение по умолчанию пространство) как это: awk -F\| '{$1=$1; print NR, $0}' - $1=$1 часть вынуждает awk переписать входную строку с помощью выходного разделителя полей. Этот метод позволяет Вам избегать жесткого кодирования количество полей. –  glenn jackman 27.01.2013, 20:00

Как насчет добавления | sed "s/:/ /" в конце Вашей команды? таким образом, это похоже на это

cat baza|grep "AUGUSTYN" -n|awk -F '|' '{print $1,$2,$3,$4}' | sed "s/:/ /"

Если я не неправильно понимаю Вас, и Вы хотите сделать это в 1 команде.

0
27.01.2020, 21:28

Теги

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