Как мне получить поле в списке заданий bash с помощью awk?

попробуйте следующее:

iwlist wlan0 scanning | grep ESSID

grep отфильтрует мусор и просто отобразит сети вокруг вас.

1
10.04.2013, 17:17
2 ответа

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

function jf {
    echo `jobs | awk -v LINENO=$1 -v COLUMNNO=$2 'NR==LINENO {print $COLUMNNO}'`
}
2
29.04.2021, 00:50

Одиночные кавычки заставляли bash не заменять аргументы. Как уже упоминалось, двойные кавычки интерпретируются менее строго.

manatwork писал:

awk "NR==$1{print \$$2}"

Тем не менее, часть "echo` ... `" в моей функции представляла проблему, но, похоже, я слишком усложнял вещи, и это вообще не нужно. У меня работает эта новая функция:

function jf {
    jobs | awk "NR==$1{print \$$2}";
}
1
29.04.2021, 00:50

Теги

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