Как я могу получить доступ к столбцу строки из строки?

У меня есть файл, который я просматриваю в цикле for . Я хочу сделать что-то вроде …

for line in file.out; do echo "Some text before $line($2) $line($3)"; done

Где для каждой строки я вставляю второй и третий столбцы из этой строки в текущую строку. Есть ли простой способ сделать это? Могу ли я получить доступ к awk из строки?

Пример ввода:

 some.metric.tag_A 100500 1446043920 some.metric.tag_B 100501 1446043921 some.metric.tag_C 100502 1446043922 some.metric.tag_D 100503 1446043923 

Пример вывода:

 Some text before 100500 1446043920 Some text before 100501 1446043921 Some text before 100502 1446043922 Some text before 100503 1446043923 

One Solution collect form web for “Как я могу получить доступ к столбцу строки из строки?”

Использование awk

awk неявно пересекает линии и разделяет каждую строку на поля:

 $ awk '{printf "Some text before %s %s\n",$2,$3}' file.out Some text before 100500 1446043920 Some text before 100501 1446043921 Some text before 100502 1446043922 Some text before 100503 1446043923 

Если мы знаем, что входной файл всегда будет иметь только три столбца, тогда эта команда может быть сокращена до (подсказка для шляпы: Дон Криссти):

 $ awk '{$1="Some text before"} 1' file.out 

Использование оболочки

Строки можно разбить на поля, используя инструкцию read оболочки:

 $ while read abcd; do echo "Some text before $b $c" ; done <file.out Some text before 100500 1446043920 Some text before 100501 1446043921 Some text before 100502 1446043922 Some text before 100503 1446043923 
  • Обрезать последние символы из строки
  • Заменить всю строку в файле из командной строки
  • Как извлечь дату и рассчитать, находится ли она в течение «х» дней с сегодняшнего дня?
  • Bash - Замена случайного числа между кавычками
  • Поддерживает ли bash обратные ссылки при расширении параметров?
  • Как выполнить grep -v -e 'expr1' и grep -e 'expr2' в одной команде?
  • заменяя многострочную строку другой многострочной строкой, используя sed
  • Проверьте, имеет ли переменная оболочки более одной строки с использованием встроенных модулей?
  • Как найти позицию персонажа с помощью grep?
  • Как я могу правильно использовать команду sed в этом конкретном сценарии
  • Есть ли простой способ получить массив всех аргументов, которые не начинаются с дефиса?
  • Interesting Posts

    Построение графика в gnuplot

    правильный способ установки пакетов с apt-get без запроса

    Получение клавиатуры для работы в debian 6.0 для разблокировки корневого раздела

    Как отладить общественную долю smb не работает?

    Апплет уровня звука Xfce работает неправильно

    Чтобы найти разницу между двумя строками одних и тех же файлов

    Regex, который будет grep-номера после определенной строки

    Как установить диск `D: \` Windows в linux mint?

    Дисковое пространство на Fedora 12

    Выполнить такую ​​же операцию для нескольких пар файлов с похожими именами

    Почему команда вставки не работает для конкатенации двух столбцов файлов, когда символы более 511?

    SSD установлен, но отображается как жесткий диск в командном выводе

    Легкая зональная песочница файловой системы

    Копирование файлов на несколько компьютеров по локальной сети

    Что такое хорошая стратегия для создания и копирования файлов в атомарном виде

    Linux и Unix - лучшая ОС в мире.