Ben*_*Ben 4 unix bash shell sed
我试图编写一个小shell脚本,首先使用日期定义文件名,然后运行两个sed命令,删除某些字符.
我的代码如下:
filename=/var/local/file1/tsv_`date '+%d%m%y'`.txt
sed -i 's/\("[^,]*\)[,]\([^"]*"\)/\1\2/g' '&filename'
sed -i 's/\"//g' '&filename'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
sed: can't read &filename: No such file or directory
sed: can't read &filename: No such file or directory
Run Code Online (Sandbox Code Playgroud)
问题是,如何将此文件名变量传递给sed命令?
谢谢
在进行shell脚本编写时,对于引用变量,不使用&(和号),而是使用$(美元符号):
filename=/var/local/file1/tsv_`date '+%d%m%y'`.txt
sed -i 's/\("[^,]*\)[,]\([^"]*"\)/\1\2/g' "$filename"
sed -i 's/\"//g' "$filename"
Run Code Online (Sandbox Code Playgroud)
另外,在引用变量时,必须使用双引号,否则,bash不会解释$符号的含义.
| 归档时间: |
|
| 查看次数: |
5695 次 |
| 最近记录: |