Как удалить новую строку перед EOF в файле text / csv через bash

Решение (странное, но сработало для меня): откройте /usr/share/xsessions/xfce.desktop и замените

Name=Xfce Session

на

Name=Xfce_Session
0
10.09.2015, 01:56
4 ответа

Есть несколько способов сделать это.

С printf :

printf "%s" "$(<file)"

С perl (используйте -i для редактирования файла на месте):

perl -pe 'chomp if eof' file

Или с head (если вы уверены, что последний символ - это новая строка):

head -c -1 file
3
29.04.2021, 00:24

Вы можете попробовать следующее

sed 'N; $ s/\n//; P; D;' file
0
29.04.2021, 00:24

Это тоже должно сработать, и немного более читабельно (по моему мнению, основанному на awk):

 awk '{ if ( NR == 1) { printf("%s",$0); } else { printf("\n%s", $0); }}' file
0
29.04.2021, 00:24

С awk :

awk 'NR > 1 { print prev } { prev = $0 }' file

или с sed :

sed '$d' file
-1
29.04.2021, 00:24

Теги

Похожие вопросы