Рейтинг:0

bash, отображать только в том случае, если в выводе содержится n символов

флаг ss

как я могу отобразить содержимое вывода, которое имеет только количество н символы во втором столбце, разделенные на ,? Например, grep только строка, содержащая 4 символа во втором столбце.

Вход.

а, 123
б, 223
с, 1234
д, 323
е, 2234

Вывод.

с, 1234
е, 2234

Есть простой способ сделать это, например, резать и сед, или же за нужно использовать петлю?

Спасибо.

Рейтинг:1
флаг hr

Некоторые варианты:

файл grep ',....$'

файл grep ',.\{4\}$'

sed -n '/,....$/p' файл

sed '/,....$/!d' файл

sed -n '/,.\{4\}$/p' файл

sed '/,.\{4\}$/!d' файл

grep -E ',.{4}$' файл

sed -En '/,.{4}$/p' файл

sed -E '/,.{4}$/!d' файл

gawk -F, 'длина ($2) == 4' файла

perl -F, -lne 'печатать, если длина ($F[1]) == 4' файла
genderbee avatar
флаг ss
Спасибо, а если мне нужно проверить **3-й** столбец, разделенный на `,`?
genderbee avatar
флаг ss
Хорошо, теперь я знаю. Большое спасибо за ответ.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.