2015-10-20 5 views
1

Am пытается получить разницу между двумя файлами, даже если файл выглядит так же он показывает разницу, что у него есть пустые строки в началеDiff между двумя файлами показывает пустые строки

Как я могу удалить пустые строки, прежде чем делать разница

Я знаю, что СЕПГ -i «/^$/d должно работать, но он не работал для меня есть ли другой способ

Благодаря

+0

Помните, что, казалось бы, «пустая строка» может содержать много вещей, включая пробелы и/или вкладки. Используйте 'diff -B file1 file2': http://man7.org/linux/man-pages/man1/diff.1.html – paulsm4

ответ

1

Смотрите diff man page:

-B, --ignore-blank-lines 
       ignore changes where lines are all blank 
+0

Спасибо alex. Он удалил строки, но добавил. Пустая строка, начинающаяся с ( – Madhumitha

1

Если вы хотите, чтобы удалить все пустые строки (не содержащий не-пробельных символов), вы можете сделать следующее:

perl -i -pe 's/^\s*\z//' yourfile.txt 

Или, если предположить, GNU СЭД:

sed -i '/[^ \t]/!d' yourfile.txt 

Этот не совсем эквивалентен, потому что perl's \s рассматривает больше вещей как пробелы, чем просто пространство и вкладку.

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