У меня есть файл данных, который состоит из строк, которые все содержат FG =???? (где ???? представляет собой четырехзначное число, которое отличается в каждой строке).

Я хотел бы извлечь это из каждой строки и сохранить его в новый файл. Можно ли это сделать с помощью awk?

Я использовал /this / для извлечения строк, содержащих слово this. Есть ли что-то похожее для извлечения слова из строки?

2 ответа2

2

Вы можете выбрать диапазон символов из каждой строки:

awk '{print substr($0,4,4)}' file.txt

Специально для вашего случая:

awk -F 'FG=' '{print substr($2,0,4)}' file.txt

Вы также можете использовать cut:

cut -b4-7 file.txt
0

Я мог бы дать вам чистый awk-ответ, если вы опубликуете пример ваших реальных данных. В отсутствие конкретных подсказок вы всегда можете попробовать Perl:

perl -ne '/FG=(\d+)/; print "$1\n"'  infile.txt > outfile.txt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .