Здесь columns.txtAwk подстроки один символ
aaa bbb 3
ccc ddd 2
eee fff 1
3 3 g
3 hhh i
jjj 3 kkk
ll 3 mm
nn oo 3
я могу найти строку, в которой второй столбец начинается с «Ъ»:
awk '{if(substr($2,1,1)=="b") {print $0}}' columns.txt
я могу найти строку, где начинается второй столбец с «бб»:
awk '{if(substr($2,1,2)=="bb") {print $0}}' columns.txt
почему о, почему я не могу найти строку, где второй символ во втором столбце является «б» ?:
awk '{if(substr($2,2,2)=="b") {print $0}}' columns.txt
awk -W version
== GNU Awk 3.1.8
потому что вы говорите 'substr()', чтобы возвращать 2 символа (последний аргумент), а затем сравнивая полученную строку 2-char (например, 'bb') с строкой 1-char' b', чтобы увидеть, идентичны, что, конечно, никогда не может быть. –
Я использую эту функцию как substr (field, start, end), где end - N-й символ строки. Он работал до сих пор, потому что я всегда искал от первого персонажа. – AWE