N-е слово в строке В Bash я хочу получить N-е слово строки. Например: STRING="one two three four" N=3 Результат: "three" Что может сделать команда Bash command/script? Ответ 1 echo $STRING | cut -d " " -f $N Ответ 2 Альтернативный N=3 STRING="one two three four" arr=($STRING) echo ${arr[N-1]} Ответ 3 Используя awk echo $STRING | awk -v N=$N '{print $N}' Тест % N=3 % STRING="one two three four" % echo $STRING | awk -v N=$N '{print $N}' three Ответ 4 STRING=(one two three four) echo "${STRING[n]}" Ответ 5 Нет дорогих вилок, нет труб, нет базизмов: $ set -- $STRING $ eval echo \${$N} three Но будьте осторожны с глотанием.
Ответ 3 Используя awk echo $STRING | awk -v N=$N '{print $N}' Тест % N=3 % STRING="one two three four" % echo $STRING | awk -v N=$N '{print $N}' three
Ответ 5 Нет дорогих вилок, нет труб, нет базизмов: $ set -- $STRING $ eval echo \${$N} three Но будьте осторожны с глотанием.