как найти содержимое строки, сопоставив номер столбца? - PullRequest
1 голос
/ 14 ноября 2011

У меня есть плоский файл с именами, адресами и другими данными.Большинство строк имеют 11-значное число, начинающееся со столбца 299, но некоторые из них пустые.

Я не могу сопоставить определенную строку, потому что я ищу те строки, где столбцы 299 - 309символы) пусто, т. е. пусто.

Как это сделать в Unix?Это что-то делать с помощью sed или я должен использовать AWK?

Ответы [ 3 ]

2 голосов
/ 14 ноября 2011

Вы можете сделать

awk 'substr($0, 99, 11) == sprintf("%*s", 11, " ")' input.txt

Печатает все строки с пробелами для 11 символов из позиции 99.

2 голосов
/ 14 ноября 2011

Попробуйте:

awk '{if (substr($0,299,11)=="")print $0}' file
1 голос
/ 14 ноября 2011

Это может работать для вас:

<input_file sed -e '/^.\{98\} \{11\}/!d;=' | sed -e '1~2!d'

Это печатает номера строк строк от input_file с 11 пробелами из столбца 99 Если его из столбца 299 изменить \{98\} на \{298\}

...