【背景】
折腾:
【记录】尝试为了Buildroot编译期间涉及到的m4-1.4.16的fpending在Cygwin下的问题去制作diff和patch补丁包
期间,需要搞懂diff的参数purN的含义。
【折腾过程】
1.去看看help:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | CLi@PC-CLI-1 ~ /develop/buildroot/diff_patch $ diff --help Usage: diff [OPTION]... FILES Compare FILES line by line. Mandatory arguments to long options are mandatory for short options too. --normal output a normal diff (the default) -q, --brief report only when files differ -s, --report-identical-files report when two files are the same -c, -C NUM, --context[=NUM] output NUM (default 3) lines of copied context -u, -U NUM, --unified[=NUM] output NUM (default 3) lines of unified context -e, --ed output an ed script -n, --rcs output an RCS format diff -y, --side-by-side output in two columns -W, --width=NUM output at most NUM (default 130) print columns --left-column output only the left column of common lines --suppress-common-lines do not output common lines -p, --show-c- function show which C function each change is in -F, --show- function -line=RE show the most recent line matching RE --label LABEL use LABEL instead of file name (can be repeated) -t, -- expand -tabs expand tabs to spaces in output -T, --initial-tab make tabs line up by prepending a tab --tabsize=NUM tab stops every NUM (default 8) print columns --suppress-blank-empty suppress space or tab before empty output lines -l, --paginate pass output through ` pr ' to paginate it -r, --recursive recursively compare any subdirectories found -N, --new- file treat absent files as empty --unidirectional-new- file treat absent first files as empty --ignore- file -name- case ignore case when comparing file names --no-ignore- file -name- case consider case when comparing file names -x, --exclude=PAT exclude files that match PAT -X, --exclude-from=FILE exclude files that match any pattern in FILE -S, --starting- file =FILE start with FILE when comparing directories --from- file =FILE1 compare FILE1 to all operands; FILE1 can be a directory --to- file =FILE2 compare all operands to FILE2; FILE2 can be a directory -i, --ignore- case ignore case differences in file contents -E, --ignore-tab-expansion ignore changes due to tab expansion -Z, --ignore-trailing-space ignore white space at line end -b, --ignore-space-change ignore changes in the amount of white space -w, --ignore-all-space ignore all white space -B, --ignore-blank-lines ignore changes whose lines are all blank -I, --ignore-matching-lines=RE ignore changes whose lines all match RE -a, --text treat all files as text --strip-trailing-cr strip trailing carriage return on input --binary read and write data in binary mode -D, --ifdef=NAME output merged file with ` #ifdef NAME' diffs --GTYPE-group- format =GFMT format GTYPE input groups with GFMT --line- format =LFMT format all input lines with LFMT --LTYPE-line- format =LFMT format LTYPE input lines with LFMT These format options provide fine-grained control over the output of diff , generalizing -D /--ifdef . LTYPE is `old ', `new' , or `unchanged '. GTYPE is LTYPE or `changed' . GFMT (only) may contain: %< lines from FILE1 %> lines from FILE2 %= lines common to FILE1 and FILE2 %[-][WIDTH][.[PREC]]{doxX}LETTER printf -style spec for LETTER LETTERs are as follows for new group, lower case for old group: F first line number L last line number N number of lines = L-F+1 E F-1 M L+1 %(A=B?T:E) if A equals B then T else E LFMT (only) may contain: %L contents of line %l contents of line, excluding any trailing newline %[-][WIDTH][.[PREC]]{doxX}n printf -style spec for input line number Both GFMT and LFMT may contain: %% % %c 'C' the single character C %c '\OOO' the character with octal code OOO C the character C (other characters represent themselves) -d, --minimal try hard to find a smaller set of changes --horizon-lines=NUM keep NUM lines of the common prefix and suffix --speed-large-files assume large files and many scattered small changes --help display this help and exit - v , --version output version information and exit FILES are `FILE1 FILE2 ' or `DIR1 DIR2' or `DIR FILE... ' or `FILE... DIR' . If --from- file or --to- file is given, there are no restrictions on FILE(s). If a FILE is `-', read standard input. Exit status is 0 if inputs are the same, 1 if different, 2 if trouble. Report bugs to: bug-diffutils@gnu.org GNU diffutils home page: <http: //www .gnu.org /software/diffutils/ > General help using GNU software: <http: //www .gnu.org /gethelp/ > CLi@PC-CLI-1 ~ /develop/buildroot/diff_patch $ |
【总结】
对于purN的参数的含义是:
- p:显示变化所在的C函数
- u:显示标准(默认3行)的上下文
- r:递归
- N:把不存在的文件视为新文件
转载请注明:在路上 » 【整理】Linux命令:diff用法和参数含义