4

我正在使用以下 sdiff 命令来获取两个文件的并排差异。列宽作为选项之一给出

sdiff -w170 /tmp/captureFile /tmp/referenceFile (或 diff -y )

如果我使用 -w 130 则删除一些字符。即使在下一行,它们也不会出现在输出中。他们失去了。

如果使用 -w 170 ,则由于左列中有多余的字符,右列会移动,由于屏幕宽度较小,因此在左列部分看到的字符很少。

那么是否有任何选项不剥离字符,然后在 sdiff 命令输出的同一列中的下一行?

4

2 回答 2

5

您所看到的(显然)是相对于终端会话中的行长的行截断(-w 130)或换行(-w 170)。我不相信有一种选择可以做你想做的事。我经常使用 sdiff,并且倾向于使用支持更改字体大小的终端/CLI。

将字体缩小到仍然可读的位置,然后尽可能最大化窗口。

我所做的其他事情是在比较之前“折叠”这两个文件以缩短行长 - 取决于您使用的是 Linux 还是某些 Unix 发行版。但折叠应该在那里。

于 2011-02-08T22:48:35.007 回答
0

这是我为实现@David Victor 的建议而编写的一个快速而肮脏的脚本:

$ cat SDIFF
if [ ! -n "${COLUMNS}" ]
then
        echo COLUMNS is not exported !!!
        echo run :
        echo export COLUMNS
        exit 1
fi

if [ ! -f "$1" -o ! -f "$2" ]
then
        echo usage: $0 file1 file2
        exit 1
fi

H=$(((${COLUMNS} - 3) / 2))

F1=$(mktemp)
F2=$(mktemp)
trap "rm $F1 $F2" 0

fold -s -w $H $1 > $F1
fold -s -w $H $2 > $F2

sdiff -w ${COLUMNS} $F1 $F2 | less
$
于 2022-02-14T17:00:51.793 回答