Решение заключалось в добавлении следующей строки в файл конфигурации моей точки доступа /etc/NetworkManager/system-connections/myHotspot
в блоке ipv4 :
address1=192.168.0.1/24,192.168.0.1
Вы можете использовать следующее для отображения третьего элемента во всех строках файла (при условии, что текстовый файл называется number.txt):
while read one two three four; do
echo "$three";
done < numbers.txt
Оболочка не является хорошим инструментом для такого рода вещей. Существуют инструменты, разработанные специально для этого типа задач:
$ awk '{print $3}' file
5
Или, если это вкладка -, отдельный файл:
$ cut -f3 file
5
Если нет, вы можете преобразовать последовательные пробелы в табуляцию и по-прежнему использоватьcut
:
$ sed 's/ */\t/g' file | cut -f3
5
Или преобразуйте их в одиночные пробелы и используйтеcut -d' '
:
$ sed 's/ */ /g' file | cut -d' ' -f3
5
Если вы настаиваете на том, чтобы сделать это в оболочке, вы можете сделать что-то вроде:
$ while read a b c rest; do echo "$c"; done < file
5
Или
$ nums=( $(cat file) )
$ echo "${nums[2]}"
5
Если вы хотите отобразить третью строку текстового файла, что-то вроде:
cat yourfile | head -n 3 | tail -n 1
должен выполнить эту работу. Если у вас есть все значения в одной строке, вы можете сначала изменить их порядок
echo 1 2 3 4 5 6 7 | sed -e "s# #\n#g"
1
2
3
4
5
6
7
Есть много других возможных решений, это просто первое, что пришло мне в голову.