Удалить строку как часть строки в сценарии оболочки - PullRequest
0 голосов
/ 03 октября 2018

Мне нужно удалить часть строки с помощью сценария оболочки.

Например: у меня есть это: VERBOSE [61622] [C-0000051f] И я хочу это: C-0000051f

Без скобок в последней части Как я могу это сделать?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

проверьте решение awk

> data="VERBOSE [61622] [C-0000051f] "
> awk -F"[" ' { print $NF } ' <<< $data | awk -F"]" ' { print $1 } '
C-0000051f
>

EDIT1:

Более компактная версия

> data="VERBOSE [61622] [C-0000051f] "
>  awk -F"[[]|]"  ' { print $4   } ' <<< $data
C-0000051f
>
0 голосов
/ 04 октября 2018

Как я заметил из вашего ответа здесь , вы хотите извлечь некоторую информацию из файла и затем выполнить ряд действий в этой извлеченной строке.Вся строка, которую вы там предоставили, может быть уменьшена до следующего:

NUMTEL="$1"
IDCALL=$(awk -F "[][]" -v string="$NUMTEL" '/VERBOSE/ && ($0 ~ string){print $(NF-1);exit}' /var/log/asterisk/full)
0 голосов
/ 03 октября 2018

Я смог сделать то, что мне было нужно, с помощью следующего сценария.

! / Bin / bash

NUMTEL = $ 1

IDCALL = /usr/bin/grep "VERBOSE" /var/log/asterisk/full | /usr/bin/grep "$NUMTEL" | /usr/bin/head -n1 | /usr/bin/awk '{print $4}' | /usr/bin/cut -d] -f2 | /usr/bin/sed -e 's/\[//g'

echo $ IDCALL

Спасибо

...