我目前正在尝试更改一个文件的内容
orig.sas
匹配更新文件的内容
new.sas
用 new.sas 替换 orig.sas 会进行一些更改,但是我不想更改 orig.sas 中引用的许多目录。
提交以下代码会输出一个脚本“changes.txt”,其中包含需要在 orig.sas 中更改的所有行以使其与 new.sas 相同
diff -e orig.sas new.sas > changes.txt
changes.txt 看起来像这样(完整输出有更多行):
3668c
label DBMS=xlsx replace;
.
3649,3665d
3643d
从这里我删除了所有引用目录更改的行,因此只有代码主体受到影响。
我认为我应该能够使用以下内容将此脚本提交到 sed(目的是进行所有更改 changes.txt):
sed - orig.sas < changes.txt
但我不想直接覆盖 orig.sas,而是更喜欢输出到版本 2 文件(例如 orig_v2.sas)
diff -e
的结果应该是馈送(修改)到ed
.尝试
在哪里
wq
将写入并退出,打印写入的字符数--silent
不会输出超过计数。更多信息,请参阅
man ed
。编辑
我看不到差异将差异应用于原始文件的意义,在我看来
cp new.sas orig_v2.sas
可以我想你有这个想法:两个分支
alpha
N 和bravo
N这将报告对
bravo
N 所做的 N 个alpha
更改