LINUX.ORG.RU

Убрать скобки между слов

 


0

1

Помогите нужно из строк вида:

$HEX[0302203b] 
$HEX[d18dd0bbd0b8d182d0b0d180] 
$HEX[0303030303] 
$HEX[030303034c] 
$HEX[03040508] 
$HEX[03040708] 
$HEX[03060402] 
$HEX[03060708] 
$HEX[030f3a68ba] 
$HEX[03323b00] 
$HEX[033b] 
$HEX[03616263] 
$HEX[0361] 
$HEX[036e090f0c] 
$HEX[036e7f56] 
$HEX[038c0101] 
$HEX[03] 
$HEX[03b2] 
$HEX[03dd2a26] 
$HEX[03eb0f0d] 
 
убрать $hex[]

Ответ на: комментарий от zayac366

Тогда так:
sed 's/^\$HEX\[//;s/]$//'
отрежутся только начало и конец, а посередине можно любые символы.
echo \$HEX[\$HEX[0]3]0]2]2]0]3]b] | sed 's/^\$HEX\[//;s/]$//'
$HEX[0]3]0]2]2]0]3]b

imul ★★★★★
()
$ perl -nle '/\[(.*)\]/ && print $1' /tmp/file
anonymous
()

Найти соответствие шаблону и распечатать значение внутри скобок, если не найдено, то ничего не печатать. Слева и справа могут быть любые случайные символы

$ echo '$HEX[0302203b]' | sed -n 's/.*\$HEX\[\(.*\)\].*/\1/p'
0302203b
$ echo 'zzz$HEX[0302203b]' | sed -n 's/.*\$HEX\[\(.*\)\].*/\1/p'
0302203b
$ echo 'zzz$HEX[0302203b]fff' | sed -n 's/.*\$HEX\[\(.*\)\].*/\1/p'
0302203b
$ echo 'zzz$HEXXX[0302203b]fff' | sed -n 's/.*\$HEX\[\(.*\)\].*/\1/p'
$

justAmoment ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.