awk сокращается из определенного слова в строке

есть специальный heredoc синтаксис, который удаляет счета в начале всех линий: «

http://пример tldp.org/LDP/abs/html/here-docs.html

19-4. Многострочное сообщение с подавленными вкладками

Его можно использовать следующим образом:

v="$(cat <<-EOF
    A
        B
    C
EOF
)"
echo "$v"

Результат:

A
B
C

Он работает только с вкладками, а не местами.

0
23.04.2015, 17:28
2 ответа

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

root@localhost:~# cat test
gcc-4.8.3-1.aix7.1.ppc.rpm
gcc-c++-4.8.3-1.aix7.1.ppc.rpm
gcc-cpp-4.8.3-1.aix7.1.ppc.rpm
gcc-gfortran-4.8.3-1.aix7.1.ppc.rpm
libgcc-4.8.3-1.aix7.1.ppc.rpm
root@localhost:~# awk 'BEGIN{FS=".aix7.1"} {print $1}' test
gcc-4.8.3-1
gcc-c++-4.8.3-1
gcc-cpp-4.8.3-1
gcc-gfortran-4.8.3-1
libgcc-4.8.3-1
root@localhost:~#
1
28.01.2020, 02:15

Я бы разделил линию на точках и удалил последние 4 поля

awk -F. -v OFS=. '{NF-=4}1'

, но код Костас в его комментарии больше напрямую отвечает требованиям.

5
28.01.2020, 02:15

Теги

Похожие вопросы