Использование awk для печати символов определенного индекса на строке Хорошо, поэтому я знаю, что довольно просто печатать конкретные аргументы строки, используя $: $ cat file hello world $ awk '{print $1}' file hello Но что, если я хочу печатать символы с 2 по 8? или от 3 до 7? Возможно ли это с awk? Ответ 1 awk '{print substr($0,2,6)}' file синтаксис для substr() равен substr(string,start index,length) Ответ 2 Да. Вы можете использовать функцию substr: http://www.starlink.rl.ac.uk/docs/sc4.htx/node38.html В вашем случае - для печатных символов от 2 до 8: echo "hello" | awk '{ print substr( $0, 2, 6 ) }' результат: ELLO Ответ 3 Если Perl является опцией: perl -lne 'print substr($_,1,6)' file Вывод идентичен ответу @nims
Ответ 1 awk '{print substr($0,2,6)}' file синтаксис для substr() равен substr(string,start index,length)
Ответ 2 Да. Вы можете использовать функцию substr: http://www.starlink.rl.ac.uk/docs/sc4.htx/node38.html В вашем случае - для печатных символов от 2 до 8: echo "hello" | awk '{ print substr( $0, 2, 6 ) }' результат: ELLO
Ответ 3 Если Perl является опцией: perl -lne 'print substr($_,1,6)' file Вывод идентичен ответу @nims