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

Я пытаюсь пропустить файл с именем 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 
  • Регулярное изменение / оператор (foo | bar) в GNU или BSD Sed
  • Запретить расширение подстановочных знаков при поиске
  • Как добавить текст в выходной файл?
  • Разместить файл доступа ht в webroot каждого скрипта bash каталога
  • Стандартное решение для отображения сообщений на оболочке или с помощью оконных менеджеров gui
  • Как вы можете получить текущую терминальную строку (ту, которая все еще доступна для редактирования пользователем)?
  • Не удалось скопировать несколько файлов с помощью версии rsync 3.0.9?
  • Выйдя из цикла, вернитесь к началу цикла с правильным значением переменной
  • Как получить PID подоболочки в Korn Shell (эквивалент $ BASHPID)
  • Какие оболочки имеют функции, где «local» не изменяет экспортированные переменные для дочерних процессов?
  • Извлечение некоторых файлов из папки и создание списка этих файлов
  • Linux и Unix - лучшая ОС в мире.