Эй, это мой первый ответный пост, здесь идет речь:
' - \ n ' Я подозреваю, что это символы перевода строки. Вы можете использовать sed, чтобы удалить их. В качестве теста вы можете попробовать следующее:
1) создать тестовый файл:
echo "привет, это тест - \ n"> testfile
2) проверьте, что файл содержит ожидаемое содержимое:
cat testfile
3) проверить команду sed, она отправляет отредактированный текстовый поток на стандартный вывод (т. Е. Окно активной консоли) без перезаписи:
sed 's / - \\ n // g' testfile
(вы должны просто увидеть «привет, это тестовый файл», напечатанный на консоли без « - \ n »)
Если я соберу команду:
a) Сначала у вас есть сама команда sed:
СЭД
б) Во-вторых, выражения и специфические элементы управления sed должны быть в кавычках:
sed 'sedcontrols + regex' (текст в кавычках - это не то, что вы на самом деле введете, мы заполним это по ходу дела)
в) Укажите файл, из которого вы читаете:
тестовый файл sed 'sedcontrols + regex'
d) Чтобы удалить строку, о которой идет речь, нужно сказать, чтобы sed заменял ненужные символы ничем (ноль, ноль), поэтому вы используете ' s ' для замены, косую черту, затем нежелательная строка (подробнее об этом через секунду), затем снова косая черта, затем ничего (чем она заменяется), затем косая черта и затем масштаб (как вы хотите применить редактирование к одному линия или более). В этом случае я выберу ' g ', который представляет глобальный, как во всем текстовом файле. Итак, теперь мы имеем:
sed 's / regex // g' testfile
e) Нам нужно добавить нежелательную строку, но это сбивает с толку, потому что, если в вашей строке есть косая черта, ее необходимо экранировать, используя обратную косую черту. Итак, нежелательная строка
- \ n выглядит как - \\ n
Мы можем вывести отредактированный текстовый поток на стандартный вывод следующим образом:
sed 's / - \\ n // g' testfile
Чтобы сохранить результаты, ничего не перезаписывая (при условии, что testfile2 не существует), мы можем перенаправить вывод в файл:
sed 's / - \\ n // g' testfile> testfile2