gpt4 book ai didi

linux - 脚本/bin/bash 扩充太长并且 grep 部分在查找中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 10:54:13 26 4
gpt4 key购买 nike

我正在尝试编写一个简单的脚本来查找文件中的字段是否为空,例如x_Field=""

find /mnt/sdb1/*/*/ -name 'files.txt' -type f -follow -print0 {} \; | xargs -0 grep -o -P '(?<=x_Field).*(?=y_Field)' | cut -c 3 | awk '{sub(/..$/,"")}1'

我认为该命令可以在没有 find 的情况下工作,但不能与 find 一起工作?

grep -o -P '(?<=x_Field).*(?=y_Field)' | cut -c 3 | awk '{sub(/..$/,"")}1'

此外,当我完成这一半工作时,如果似乎我有太多文件要扫描,所以它会增加太长:-(

很抱歉还要补充一点,我需要遍历数百个子文件夹,因此我使用了通配符

最佳答案

您的 find 命令有很多错误。

显然,/mnt/sdb1/*/* 扩展到一个列表,这对您的 shell 来说太长了。您可以将其替换为 /mnt/sdb1 -mindepth 2(假设您想避免在 sdb1 正下方的目录中找到任何内容)。

如果您有 -exec 选项,{}\; 会很有用,但您没有。

此外,grep |切 | awk 可能会被重构为一个单独的 Awk 脚本,但如果不正确理解它应该完成什么,就很难编写替代品。

关于linux - 脚本/bin/bash 扩充太长并且 grep 部分在查找中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29490960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com