Оболочка: Как получить номер из файла?

Решение заключалось в добавлении следующей строки в файл конфигурации моей точки доступа /etc/NetworkManager/system-connections/myHotspotв блоке ipv4 :

address1=192.168.0.1/24,192.168.0.1
-4
08.12.2019, 17:04
3 ответа

Вы можете использовать следующее для отображения третьего элемента во всех строках файла (при условии, что текстовый файл называется number.txt):

while read one two three four; do 
  echo "$three"; 
done < numbers.txt 
0
28.01.2020, 05:20

Оболочка не является хорошим инструментом для такого рода вещей. Существуют инструменты, разработанные специально для этого типа задач:

$ 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
3
28.01.2020, 05:20

Если вы хотите отобразить третью строку текстового файла, что-то вроде:

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

Есть много других возможных решений, это просто первое, что пришло мне в голову.

0
28.01.2020, 05:20

Теги

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