如何理解shell脚本?

时间:2018-06-25 00:25:17

标签: bash sed find xargs

有人可以向我解释以下内容吗?

find $FIRMWARE_BASE_DIR \( -name "*.txt" \) -type f | 
  xargs -t -n1 sed -i '' -e '/^#/d;/^nocrc=/d;/macaddr=/d;/^$/d;s/[ \t]*$//'

1 个答案:

答案 0 :(得分:2)

此位:

find $FIRMWARE_BASE_DIR \( -name "*.txt" \) -type f

在FIRMWARE_BASE_DIR环境变量中存储的目录下找到所有以.txt结尾的常规文件。

请注意,括号已转义,因此它们被传递以进行查找而不是由外壳程序解释,但其中仅包含一个查找谓词,因此它们没有功能-如果此命令是机器生成的,则可能包含多个有时一个学期?如果没有,则可以将其删除。

您可以在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=的行
  • 删除空行
  • 并删除尾随空格

您可以在http://man7.org/linux/man-pages/man1/sed.1.html

中找到该文档。