2013-08-30 3 views
1

мне нужно заменить каждую \ п в соответствии с «\ п (кавычка новой строки).СЭД не подставляя как ожидалось

Это должно работать. Но он ничего не делает. Не Reports нет ошибки либо. Есть подсказки кто

sed -i 's/\n/\"\n/' filename 

до того, файл содержит:.

line 1 
line 2 

после, он содержит точно такой же

Благодаря

  • Balt
+0

Я хотел бы добавить: строки разделяются символами новой строки, и Я также пробовал это: sed -i 's/\ n/\ "\ n/g' filename с тем же эффектом, без ошибок, без изменений в файле. – Balthasar

ответ

2

Попробуйте следующее:

sed -i 's/$/"/' filename 

используется $ для обозначения конца строки.

5

Строка не может содержать \n, так как \n является разделителем между строками. sed работает по одной строке за раз, а новая строка не входит в нее.

Если вы хотите поместить символ до конца каждой строки, используйте $ регулярное выражение:

sed -i 's/$/"/' filename 
1

Использование AWK

awk '{$0=$0"\""}1' filename 
+0

Просто из интереса, что означает' 1' на конец ACTION? – Juto

+0

Когда тест является истинным (как всегда 1), действие по умолчанию 'print $ 0' Таким образом, вы можете использовать' 1 { print $ 0} 'или только' 1' – Jotne

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