上一个: Line group formats, 上层: diff options
行格式控制着如何将输入文件中的每一行输出为 if-then-else 格式的行组的一部分。
例如,下面的命令输出的文本在左侧有一个单列更改指示。第一列输出为 `-' 代表 删除的行,`|' 代表添加的行,空格是未修改的行。格式中包含换行字符是因为需要 输出换行。
cvs diff \
--old-line-format='-%l
' \
--new-line-format='|%l
' \
--unchanged-line-format=' %l
' \
myfile
指定行格式,要使用下面的选项。你应该引注 format,这是因为通常包含 shell 字符。
在行格式里面,普通字符代表它们自己; 以 `%' 开始转换规格有下面的形式。
printf 的转换规格,代表 F 格式化的行号。例如,
`%.5dn' 使用 printf 的 "%.5d" 格式打印行号。
参阅 Line group formats, 了解更多 printf 的转换格式。
默认的行格式是 `%l' 和一个换行符。
如果输入包含制表符,并且重要的是在输出里面排列行,你应确保行格式里面的 `%l' 或 `%L' 紧跟在制表符后面(如,在 `%l' 或 `%L' 前有制表符), 或者使用 `-t' 或 `--expand-tabs' 选项。
总之,行格式与行组格式让你指定不同的格式,例如,下面命令使用类似 diff
的普通格式。你可以修剪这个命令用于控制 diff 的输出。
cvs diff \
--old-line-format='< %l
' \
--new-line-format='> %l
' \
--old-group-format='%df%(f=l?:,%dl)d%dE
%<' \
--new-group-format='%dea%dF%(F=L?:,%dL)
%>' \
--changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
%<---
%>' \
--unchanged-group-format='' \
myfile