Сравните главы двух файлов в bash


11

Я могу сделать, diff filea filebчтобы увидеть разницу между файлами. Я также могу сделать, head -1 fileaчтобы увидеть первую строку filea или fileb. Как я могу объединить эти команды, чтобы показать разницу между первой строкой filea и первой строкой fileb?

Ответы:



6

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

dwdiff <(head -n 1 filea) <(head -n 1 fileb)

dwdiffимеет несколько приятных опций, например, -cраскрасить измененные слова.

Или, используя sedвместо головы:

dwdiff <(sed 1q filea) <(sed 1q fileb)

которую руководство по голове предлагает более компактна , чем голова, как синтаксис для головы изменилась с течением времени head -1противhead -n 1

Кроме того, вы можете просто посмотреть изменения, набрав немного меньше:

head -n1 -q filea fileb

которая отображает две строки, одна под другой, для удобного визуального сравнения.


0

Ты можешь использовать:

if [ "`head -1 file1`" == "`head -1 file2`" ]; then echo "the same"; fi

2
Обратите внимание, что он ответил бы «то же самое», если file1 является пустым файлом (или не читаемым), а первая строка file2 пуста.
Стефан Шазелас

Я не говорил, что этот метод является «доказательством идиота», но если вы хотите быстро сопоставить первую строку двух файлов ...
Ламберт,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.