2016-03-21 5 views
0

У меня есть список строк в переменной (1,3,8,9). Этот список показывает, какие строки мне нужно удалить из текстового файла. какую функцию я могу использовать для удаления определенного номера строки?UNIX - удалить определенные строки

Большое вам спасибо за ваш реагировать

+0

У вас нет ответа. –

+0

'sed',' awk', 'perl',' ruby', 'python',' lua', 'bash', ... –

ответ

1
# set -vx 
lines2del="(1,3,8,9)" 
sedCmds=${lines2del//,/d;} 
sedCmds=${sedCmds/(/} 
sedCmds=${sedCmds/)/} 
sedCmds=${sedCmds}d 
sed -i "$sedCmds" file 

Снимите # перед тем set -vx, чтобы увидеть отладки/трассировки для каждого CMD, как она выполняется.

Если у вас на самом деле нет () (parens) вокруг ваших данных, исправьте переменную line2del и удалите вторую и третью линии sedCmds=.

IHTH

Смежные вопросы