通过将文件与以下内容进行比较,我得到以下输出diff
:
< IF-Name :STRING: "lns-wall-01-t2" Index:Gge32: 260
---
> IF-Name :STRING: "lns-wall-01-t2" Index:Gge32: 25
我需要这个输出:
lns-wall-01-t2 old:260 new:25
我想使用 sed。
答案1
和awk
:
awk '
/^</ { old = $NF }
/^>/ { str = $4 ; gsub(/"/,"",str) ; printf "%s old:%s new:%s\n", str, old, $NF }
' your_files_list_here
答案2
sed '
/^</{
# first line formatting
s/^.*"\(.*\)".*: /\1 old:/
# append next 2 lines
N
N
# exchange from 2nd line begining till last ":" by "new"
s/\n---.*: / new:/
}' "$Rep_Scripts"/diff.txt
答案3
使用不同类型的 diff 输出:
diff -y --suppress-common-lines f1 f2
这为您提供了更加用户友好的格式:
F-Name :STRING: "lns-wall-01-t2" Index:Gge32: 260 |IF-Name :STRING: "lns-wall-01-t2" Index:Gge32: 25
和
diff -y ........ |
perl -nE '/"(.*?)".*?32:\s*(\d+).*32:\s*(\d+)/
and say "$1 old:$2 new:$3"'