gpt4 book ai didi

linux - 这个 bash 脚本命令(sed - e)是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 05:44:44 25 4
gpt4 key购买 nike

我对 bash 脚本完全陌生,但我想解决这个问题..命令是:

    objfil=`echo ${srcfil} | sed -e "s,c$,o,"`

关于bash脚本程序的想法是检查源文件,并检查OBJ目录中是否有相邻的目标文件,如果有,则程序的其余部分顺利运行,如果没有,则迭代终止并跳过当前源文件,然后继续下一个..它适用于.c文件,但不适用于 header ,因为对象文件名依赖于.c文件..我想编写此命令,因此它不仅检查.c文件,还检查.h文件也是..但没有跳过它们。我知道我还必须做其他事情,但我需要了解这行命令的具体作用才能继续前进。谢谢。 (抱歉我的英语)

更新:

    if test -r ${curOBJdir}/${objfil}
then
cp -v ${srcfil} ./SAVEDSRC/${srcfil}

fdone="NO"
linenums=ALL
else
fdone="YES"
err="${curOBJdir}/${objfil} is missing - ${srcfil} skipped)"
echo ${err}
echo ${err} >>${log}
fi

while test ${fdone} == "NO"
do
#rest of code ...

这里是程序的其余部分..我尝试注释掉“测试”部分以忽略比较,只是因为我只想让我的脚本在.h文件上工作,但没有检查例如abc.h文件是否有abc.o文件..(需要生成目标文件,因为脚本末尾有原始目标文件和修改后目标文件的十六进制转储之间的比较)。整个脚本用于使用 typedef 更改基本类型,例如将 int 更改为 sint32_t。

最佳答案

这个具体命令会将行尾之前的所有 c 替换为 o:

srcfill=abcd.c
objfil=`echo ${srcfil} | sed -e "s,c$,o,"`
echo $objfil

输出:

abcd.o

附注它使用不同的匹配/替换分隔符:默认为 / 但它使用 ,

关于linux - 这个 bash 脚本命令(sed - e)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23783366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com