Я использую Ubuntu. Я имею fileName.sh
файл, содержащий 1 000 строк и я должен удалить 399 number
строка является этой командой, достаточно для удаления строки.
Команда:- sed -i '399d' test.sh
Там какая-либо потребность состоит в том, чтобы измениться в этой команде? И можно ли дать мне больше предложений для удаления строки из файла?
Лучше (но stiull небезопасный) для удаления строки с помощью ее содержания, чем использование номера строки. Если Вы хотите удалить строку, содержание которой известно:
sed -i /{contents}/d in.sh
Другое решение состоит в том, чтобы использовать grep-v:
grep -v '{contents}' <in.sh >out.sh
В обоих случаях {содержание} является regexp, который соответствует содержанию, которое Вы хотите удалить, зная, что строки только с буквами и числами и несколькими избранными специальными символами являются регулярными выражениями для себя, таким образом:
sed -i /somefile/d in.sh
grep -v 'somefile' <in.sh >out.sh
удалит любую строку, содержащую somefile
от входа. Но имейте в виду, что они могли также соответствовать большему количеству вещей (например, somefile2
был бы также подобран), если Вы не начинаете использовать больше полного regexps, например, с помощью ^{contents}$
соответствовать строкам, которые являются точно {contents}
, исключая тех, которые содержат {contents}
и дополнительные вещи.