Итак, я пытаюсь извлечь вывод, похожий на
x=($discover nginx --human=nood)
что дает мне вывод вроде
i-03099 nginx IP noodlefish pip b4b966d280546c6b070f5f952c281d3294308048
Далее я хочу извлечь столбец pip в другую переменную. Когда я это сделаю
echo "$x" | cut -f6
Я получаю желаемый результат, но когда я пытаюсь...
y= "$x" | cut -f6
Я получаю пустой вывод.
Пожалуйста, объясните мне, почему это происходит и как мне получить желаемый результат. Заранее спасибо.
решение1
Далее я хочу извлечь столбец pip в другую переменную. Когда я это сделаю
echo "$x" | cut -f6
Я получаю желаемый результат [...]
Это странно, потому что это не должно работать, поскольку
‘-f FIELD-LIST’
‘--fields=FIELD-LIST’
Select for printing only the fields listed in FIELD-LIST. Fields
are separated by a TAB character by default. Also print any line
that contains no delimiter character, unless the ‘--only-delimited’
(‘-s’) option is specified.
-f
должно работать только в том случае, если поля разделены символом TAB, если не -d
указано иное.
Если вы хотите извлечь поле после слова pip
, такой скрипт у меня работает
x="i-03099 nginx IP noodlefish pip b4b966d280546c6b070f5f952c281d3294308048"
y=$(echo -n "$x" | cut -d ' ' -f 6 -)
echo "$y"
решение2
Используйте следующую команду
y=`echo $x |cut -f6`