linux - 回显所有匹配模式的文件

标签 linux bash pattern-matching echo

我在某个目录中有一些文件。 例如:

/path/file1.out
/path/file2.out
/path/file3.out
/path/file4.out
/path/file5.out

是否可以通过单个命令使用 echo 向所有这些文件写入内容? 我希望像

echo "asd" > /path/file*.out

但它无法识别 glob。

最佳答案

无法重定向到更多文件,需要使用循环:

shopt -s nullglob
for file in /path/file*.out; do
   echo "foo" > "$file"
done

或者你可以使用同时输出到stdout的tee:

shopt -s nullglob
echo "foo" | tee /path/file*.out

请注意,shopt -s nullglob 很重要,这样如果没有与您的模式匹配的文件,您就不会创建不需要的文件。

关于linux - 回显所有匹配模式的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888353/

相关文章:

linux - 如何正确设置samba权限?

linux - bash 命令 XOR ^ 另一个命令

linux - 如何在linux中用最少的单词输出一个文件

rust - 为什么在可变引用上进行模式匹配时不需要 `ref mut`?

haskell - 如何递归地将函数转换为cps

php - UTF-8贯穿始终

linux - 在 Docker 中安装 Rust 工具链时,Bash `source` 命令不起作用

linux - Eclipse CDT Linux ClearCase SCM Adapter 插件安装问题

json - 如何使用 shell jq 动态解析 JSON 对象

scala - 在 Scala 中,如何根据带有类型参数的类型测试 'Any' 对象的类型?