【发布时间】:2016-12-03 07:53:48
【问题描述】:
我正在尝试编写一个 shell 脚本,它接收一个文件(例如 file_1_2.txt)并将任何“_”替换为“.”(例如 file.1.2.txt)。这就是我所拥有的,但是当我运行它时它给了我一个空白输出。
read $var
x= `echo $var | sed 's/\./_/g'`
echo $x
我正在尝试将更改后的文件名存储在变量“x”中,然后将 x 输出到控制台。
我通过写来调用这个脚本
./script2.sh < file_1_2.txt
【问题讨论】:
-
您是否尝试删除
x=和其余命令之间的空格? -
如果我这样做仍然没有输出。
-
嗯还可以尝试删除
read行上的$:read var而不是read $var。这对我有用。 -
还是什么都没有。我在 bash 中运行它,这有什么不同吗?编辑:在没有加载 bash 的情况下尝试过,它是一样的。只是一个空行输出。
-
我想您确实检查了您的
file_1_2.txt是否为空?好吧,删除了空格和$,这对我来说对bash来说很好,所以我不能真正帮助你,对不起:-/