Цитирование через файл с использованием столбца

Я пытаюсь пропустить файл с именем file.txt, который содержит кучу мусора и один столбец (столбец № 4), который меня интересует. Я хочу, чтобы этот цикл работал от 0 до eof. Для каждого значения в столбце 4 я хочу вызвать другой скрипт.

5 Solutions collect form web for “Цитирование через файл с использованием столбца”

Чтобы вызвать скрипт для каждого значения в столбце №4, вы можете использовать что-то вроде этого:

 awk '{system("./your_script.sh " $4)}' inputfile 

Еще одна версия, как это можно сделать, на этот раз только с оболочками:

 while read line ; do set $line echo $4 done <filename 

Замените echo своим скриптом.

Я предполагаю, что ваши столбцы разделены пробелами.

 for value in $(cat file.txt | tr -s ' ' | cut -d ' ' -f4); do ./my_script.sh $value done 

Объяснение:

  • tr -s ' ' сжимает последовательные пробелы, так что столбцы разделяются одиночным пространством
  • cut -d ' ' -f4 использует пробел в качестве разделителя для выбора 4-го столбца

Я удивлен, что никто не упомянул xargs , потому что именно цель xargs – предоставлять значения, выводимые предыдущей командой, на что-то другое. Мы можем объединить это свойство с возможностью awk печатать столбцы. Ниже приведен пример демонстрации. Вы можете заменить printf "Hello %s\n" частью вашего скрипта

 xieerqi@eagle:~$ df > testFile.txt xieerqi@eagle:~$ awk '{print $4}' testFile.txt | xargs -I {} printf "Hello %s\n" {} Hello Available Hello 26269816 Hello 4 Hello 2914488 Hello 584064 Hello 5120 Hello 2827976 Hello 102324 
 sed 1d $outfile1 | while read "column on file" do done 
  • Возможно ли «защитить» символ IFS от разделения поля?
  • Список специальных символов в оболочке
  • Как извлечь IP и URL из файла журнала
  • Снять демона с помощью sudo?
  • Список файлов с меткой времени с эпохи
  • Проверьте входящий поток на пустые пространства и переместите его
  • Скрипты на несколько серверов одновременно
  • скрипт для сравнения двух строк "foo" и "bar"
  • найти самый большой файл
  • wget пакетный файл linux
  • Чтение двоичного файла в виде массива байтов или 16 или 32 бит с использованием сценария оболочки
  • Linux и Unix - лучшая ОС в мире.