Удалить набор строк из файла в AIX, передав переменные - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь удалить набор строк из файла, передав переменные.

Ниже мой файл:

$ cat checking.txt
Starting1
DELETE /*+NESTED_TABLE_SET_REFS+*/ FROM tables1

Ending1

Starting2

update table

set col1=2
where val2=685

Ending2

Starting3

update table
set col1=1
where val1=44

Ending3

, поэтому в приведенных выше файлах мне нужно удалить строки из 1-голиния до 4-й строки.Я использовал приведенную ниже команду, и она работала нормально.

sed '1,4d' checking.txt

Теперь я присвоил переменной a значение, например a=4

echo $a
4

Теперь я попробовал команду sed, например

sed "1,${a}d" checking.txt

sed: 0602-404 Function 1, 4d cannot be parsed.

Может кто-нибудь сказать, пожалуйста, как передать переменную здесь?

Заранее спасибо

1 Ответ

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

Один из способов решить эту проблему заключается в следующем.Предполагая, что вы хотите удалить строки между start и stop, вы можете написать

awk '(NR<start) || (stop<NR)' start=1 stop=4 file

Способ, которым вы предлагаете его работать, также работает,

start=1
stop=4
sed "${start},${stop}d" file

Причина, почемув вашем случае это не удалось из-за того, что перед переменной a, кажется, есть пробелы.Вы заметили это из сообщения об ошибке и пробела перед 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...