2016-02-25 3 views
0

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

файл данных, как это (каждая запись на новой строке):

Name:Address:Phone:email 
Joshua Brown:42404 Transport Center:380-(605)964-4223:[email protected] 
Margaret Elliott:24 Forest Plaza:48-(269)541-4040:[email protected] 
Gary Flores:76868 Westport Drive:86-(478)534-8313:[email protected] 

мой код:

#assuming $1 is the pattern that needs to be searched for 
#if found, delete the entire line 
sed -i '/$1/d' filename 
+2

'sed -i"/$ 1/d "file" Удачи. – shellter

+0

Попробуйте [shellcheck] (http://www.shellcheck.net). Он предупреждает об этом и других распространенных проблемах. –

ответ

0
sed -i 'Nd' filename 

N означает номер строки, начинается с 1

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