使用 bash 替换文件

使用 bash 替换文件

我正在尝试将(相当长的)脚本从 csh 翻译为 bash。它需要一个“Makefile”并执行命令:

cpp_begin_line=`grep -n cpp_flags Makefile | sed 's/:/ /' `
cpp_end_line=`grep -n lioapi Makefile | sed 's/:/ /' `

这里的值是cpp_开始行是:

48  cpp_flags = \
71  CPP_FLAGS   = $(cpp_flags)

和价值cpp_结束行是:

73  IOAPI  = -L$(LIB)/ioapi/lib -lioapi

这些数字来自 Makefile 中的第 48、71 和 73 行。然后,脚本尝试执行操作

diff=1+$cpp_end-$cpp_begin
head -n $cpp_end Makefile | tail -n $diff | sed 's/-Dparallel/-Dparallel -Dtwoway/'  >> Makefile.twoway

失败是因为差异等于

  1+73  IOAPI  = -L$(LIB)/ioapi/lib -lioapi[1]-1-48  cpp_flags = \
71  CPP_FLAGS   = $(cpp_flags)[1]

在这里,我期待着差异将成为尾部使用的一些数字差异。

相关内容