【问题标题】:What does this bash command do?这个 bash 命令有什么作用?
【发布时间】:2018-11-19 14:33:47
【问题描述】:

这个命令有什么作用?可以缩短而不丢失功能吗?

echo "abcabcabc" | sed "s/aBc/xyZ/gi;s/Z/a/;s/c/CCC/g" | xargs ls -ld

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为您可以运行该命令并查看它的作用。

标签: bash scripting


【解决方案1】:

如果您在 Mac OS 终端上输入该命令,您就会知道该命令的作用。它除了产生错误之外什么也没做,因为 sed 命令中的 i 似乎是错误的或输入错误。不过

echo "abcabcabc" | sed "s/aBc/xyZ/g;s/Z/a/;s/c/CCC/g" | xargs ls -ld

输出字符串 abcabcabc,该字符串用作 sed 命令的输入,该命令将 aBc 替换为 xyZ,将 Z 替换为 a,将 c 替换为 CCC。这导致字符串 abCCCabCCCabCCC 再次输入 ls -ln 命令。如果您在当前目录中有一个名为 abCCCabCCCabCCC 的文件,则会找到该文件并显示其详细信息,否则输出为

ls: abCCCabCCCabCCC: No such file or directory

是否可以缩短取决于您真正想要实现的目标。

echo "abcabcabc" | sed "s/c/CCC/g" | xargs ls -ld

在这种情况下会有相同的结果。

【讨论】:

  • i 修饰符是一个 GNU 扩展,它使 sed 以不区分大小写的方式匹配(Perl 也支持)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 2011-06-14
相关资源
最近更新 更多