将通配符*传递给(bash?)脚本

袋鼠

我想从一个中等大小的文本文件集合中删除所有看起来像“ @n”,“ @ R”等的颜色代码。

因此,在名为“ remove_cc”的文件中,我编写了以下内容:

sed -ie 's/@r//g' $1
sed -ie 's/@g//g' $1
sed -ie 's/@y//g' $1
sed -ie 's/@b//g' $1
sed -ie 's/@m//g' $1
sed -ie 's/@c//g' $1
sed -ie 's/@n//g' $1
sed -ie 's/@R//g' $1
sed -ie 's/@G//g' $1
sed -ie 's/@Y//g' $1
sed -ie 's/@B//g' $1
sed -ie 's/@M//g' $1
sed -ie 's/@C//g' $1
sed -ie 's/@N//g' $1
sed -ie 's/@W//g' $1
sed -ie 's/@K//g' $1

无论如何,如果我像这样使用脚本,该脚本将发挥出色的作用:./remove_cc file.txt

但是,如果我键入./remove_cc *.txt一个包含许多要在其中运行脚本的txt文件的文件夹,它将无法执行任何操作。./remove_cc *同样无效。

有没有一种方法可以解决这个问题呢?

詹德

当您键入时./remove_cc *,shell将其更改为./remove_cc file1.txt file2.txt file3.txt etc,然后以这种方式运行脚本。您的脚本仅查看$1第一个参数(file1.txt)。

最通用的方法是依次遍历每个参数。"$@"扩展到所有参数的列表,我们可以for用来遍历它们。

for n in "$@" ; do
    sed -ie 's/@r//g' "$n"
    ...
done

在这种情况下,由于sed将使用多个文件名,因此您可以简化以下操作:

sed -ie 's/@r//g' "$@"

请注意,编写Shell脚本时,注意引号很重要。例如,如果没有引号,该脚本将无法在名为的文件上运行My Text File.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将bash变量传递给python脚本

来自分类Dev

将bash变量传递给python脚本

来自分类Dev

将多个参数传递给Bash脚本

来自分类Dev

bash脚本:将参数传递给mkfs

来自分类Dev

如何将通配符参数传递给bash文件

来自分类Dev

从bash脚本将列表作为变量传递给python脚本

来自分类Dev

使用bash脚本将参数传递给python脚本

来自分类Dev

将BASH关联数组传递给PHP脚本

来自分类Dev

如何将参数传递给Java bash脚本?

来自分类Dev

如何将数组传递给bash shell脚本?

来自分类Dev

Bash将字符串参数传递给python脚本

来自分类Dev

如何将参数传递给输入到bash的脚本

来自分类Dev

将环境变量传递给jenkins管道bash脚本

来自分类Dev

如何通过cpp程序将参数传递给bash脚本

来自分类Dev

如何通过Dockerfile将参数传递给bash脚本

来自分类Dev

如何将参数传递给输入到bash的脚本

来自分类Dev

如何将数组传递给bash shell脚本?

来自分类Dev

采购变量时将变量传递给bash脚本

来自分类Dev

Bash脚本将查找文件传递给awk [Mac]

来自分类Dev

将PHP变量传递给远程bash脚本

来自分类Dev

将参数传递给bash脚本文件

来自分类Dev

如何将bash变量传递给awk脚本

来自分类Dev

将少量curl变量传递给bash脚本

来自分类Dev

使用 curl 将 args 从 git 传递给 bash 脚本

来自分类Dev

如何将python变量传递给bash脚本?

来自分类Dev

如何通过脚本中的变量将'*'通配符传递给find命令的路径参数?

来自分类Dev

如何通过脚本中的变量将'*'通配符传递给find命令的路径参数?

来自分类Dev

将参数传递给脚本

来自分类Dev

无法将命令行参数传递给嵌入在bash脚本中的awk脚本

Related 相关文章

热门标签

归档