gpt4 book ai didi

database - 删除包含在命令行上传递的参数的文件中的行

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:38 24 4
gpt4 key购买 nike

我正在尝试根据传入的参数删除特定行。

我的 data.txt 文件包含

Cpu 500 64 6
Monitor 22 42 50
Game 32 64 128

我的del.sh包含

myvar=$1

sed'/$myvar/d' data.txt > temp.txt
mv temp.txt > data.txt

但它只是将 temp.txt 中的每一行打印到 data.txt 中......但是

sed '/64/d' data.txt > temp.txt

将进行正确的数据传输(但我不想硬编码 64),我觉得该参数存在某种语法错误。请输入任何内容

最佳答案

是单引号的缘故,改成双引号。单引号内的变量不会被插入,因此您发送的是 文字字符串 $myvarsed,而不是 $myvar.

改变:

sed '/$myvar/d' data.txt

到:

sed "/$myvar/d" data.txt

注意:如 in this response from Ed Morton 所指出,当 $myvar 包含正则表达式元字符或正斜杠时,您将遇到问题.如果您不能完全控制您的输入,您将需要找到其他途径来实现这一点。

关于database - 删除包含在命令行上传递的参数的文件中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038311/

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