2017-02-12 2 views
0

Я пробовал все решения, которые я нашел, но ничего не работает, как должно.Добавить символы в конце каждой строки

У меня есть файл с текстовыми данными. Мне нужно добавить некоторые символы в конце каждой строки.

Я уже пробовал:

awk '{print $0"XYZ"}' $newfilename-final.txt > $newfilename-XYZ.txt 
perl -nle 'print $_, "XYZ"' $newfilename-final.txt > $newfilename-XYZ.txt 
sed 's/$/XYZ/' $newfilename-final.txt > $newfilename-XYZ.txt 

Все они добавили XYZ, но не в конце каждой строки, но в новых линий между строками.

Как решить эту проблему?

+0

вы AWK решение работает здесь – Alex028502

+0

и так делает ваш СЭД один – Alex028502

+1

Возможно, у вас есть возврат каретки в конце строки. 'sed -e 's/\ r // g' -e 's/$ XYZ/g'' может работать. – iamauser

ответ

0

Проверка вашей awk-программы, она работает для меня, как и предполагалось. Я полагаю, проблема заключается в том, что ваш входной файл использует разные последовательности новой строки, чем ваша ОС по умолчанию (возможно, стиль CR + LF в стиле Windows, когда вы находитесь в UNIX или Mac OS). Если это так, этот другой пост может помочь: How to convert DOS/Windows newline (CRLF) to Unix newline (\n) in a Bash script?.

+0

Большое вам спасибо, он полностью исправил мои проблемы! –

0

если каждая строка

sed 's/[^[:print:]]*$/[Here]&/' YourFile 

вы заботитесь о каждом заднем, не для печати полукокса перед вставкой с [^[:print:]]* и & в замене шаблона

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