加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 将filename变量传递给sed命令

发布时间:2020-12-15 22:03:26 所属栏目:安全 来源:网络整理
导读:我试图编写一个小 shell脚本,首先使用日期定义文件名,然后运行两个sed命令,删除某些字符. 我的代码如下: filename=/var/local/file1/tsv_`date '+%d%m%y'`.txtsed -i 's/("[^,]*)[,]([^"]*")/12/g' 'filename'sed -i 's/"//g' 'filename' 我收到以下
我试图编写一个小 shell脚本,首先使用日期定义文件名,然后运行两个sed命令,删除某些字符.

我的代码如下:

filename=/var/local/file1/tsv_`date '+%d%m%y'`.txt
sed -i 's/("[^,]*)[,]([^"]*")/12/g' '&filename'
sed -i 's/"//g' '&filename'

我收到以下错误:

sed: can't read &filename: No such file or directory
sed: can't read &filename: No such file or directory

问题是,如何将此文件名变量传递给sed命令?

谢谢

解决方法

在进行shell脚本编写时,为了引用变量& (&符号)未使用,但$(美元符号):

filename=/var/local/file1/tsv_`date '+%d%m%y'`.txt
sed -i 's/("[^,]([^"]*")/12/g' "$filename"
sed -i 's/"//g' "$filename"

另外,在引用变量时,必须使用双引号,否则,bash不会解释$符号的含义.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读