bash - 如何理解一个shell脚本?
问题描述
有人可以解释一下以下内容吗?
find $FIRMWARE_BASE_DIR \( -name "*.txt" \) -type f |
xargs -t -n1 sed -i '' -e '/^#/d;/^nocrc=/d;/macaddr=/d;/^$/d;s/[ \t]*$//'
解决方案
这一点:
find $FIRMWARE_BASE_DIR \( -name "*.txt" \) -type f
.txt
在 FIRMWARE_BASE_DIR 环境变量中存储的目录下查找所有以结尾的常规文件。
请注意,括号被转义,以便将它们传递给 find 而不是由 shell 解释,但它们内部只有一个 find 谓词,因此它们没有功能 - 如果此命令是机器生成的,它有时可能包含多个术语? 如果没有,那么它们可以被删除。
您可以在http://man7.org/linux/man-pages/man1/find.1.html找到文档
这一点:
xargs -t -n1 command
获取该文件列表并运行每个文件名上指定的任何命令(事先将命令打印到屏幕上)
您可以在http://man7.org/linux/man-pages/man1/xargs.1.html找到文档
这一点:
sed -i '' -e '/^#/d;/^nocrc=/d;/macaddr=/d;/^$/d;s/[ \t]*$//'
在没有备份的情况下编辑输入文件:
#
删除任何以或开头的行nocrc=
- 删除任何包含
macaddr=
- 删除空行
- 并删除尾随空格
推荐阅读
- amazon-dynamodb - DynamoDB 中的 `KeyConditionExpression` 是否支持 `IN` 运算符?
- ruby-on-rails - 在不支持的 mac 上安装 rails
- linux - 尝试检查文件的校验和是否已更改时,出现错误“没有名为 file.yaml 的服务”
- php - 如何解析单个数据以查看 laravel?
- .net - 在 .NET 中,如何为 OLE 分配的以 0 结尾的非托管 Unicode 字符串释放内存?
- javascript - 在全局范围内访问异步函数内的对象数据
- elasticsearch - 使用弹性搜索词聚合查询返回附加字段
- hibernate - Spring JPA 抛出 java.lang.IllegalArgumentException:对于从依赖项 jar 加载的类来说不是托管类型异常
- javascript - 使用 javascript 函数显示/隐藏折叠的引导项
- python - 使用 python sqlalchemy 从本地 Postgres 数据库中检索数据