无法使用bash脚本附加到文件

用户名

这是我的代码:

#!/bin/bash -e
dirs=( * )
for f in "${dirs[@]}"
do
  while IFS= read -r line; do
     case "$line" in
       *disabled\>true* )
          sed -i '1i "$f"' list.txt;;
     esac
  done < "$f/config.xml"
done

我也尝试了echo和printf而不是sed,但是文件list.txt始终为空。为什么我无法附加到文件?

echo "$f" >> list.txt;;
printf '%s\n' "$f" >> list.txt;;

测试文件夹下的示例config.xml文件:

<?xml version='1.0' encoding='UTF-8'?>
<project>
<disabled>true</disabled>
</project>

目标:如果其中包含test / config.xml,则将“ test”打印到list.txt<disabled>true中。

用户名

首先,请注意您的sed表达式不适用于空文件。我修改了代码,它满足了您的目标:

#!/bin/bash -e

for f in */config.xml # process all config.xml files
do
  while IFS= read -r line; do
     case "$line" in
       *disabled\>true* )
          # obtain directory name of the file
          # and append it to list.txt
          dirname "$f" >> list.txt 
     esac
  done < "$f"
done

但是,我宁愿使用以下方法:

#!/bin/bash -e

for f in */config.xml 
do
  # -m1 - exit at first occurence for performance
  if grep -m1 'disabled>true' "$f" >/dev/null; then
      dirname "$f" >> list.txt
  fi
done

甚至更简单:

grep -l 'disabled>true' */config.xml | cut -d/ -f1 > list.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用bash脚本将块字符串变量附加到文件?

来自分类Dev

bash脚本将单词附加到文件名

来自分类Dev

将程序的输出附加到文件bash脚本

来自分类Dev

Bash脚本将netstat输出附加到文件?

来自分类Dev

使用shell脚本将行附加到/ etc / hosts文件

来自分类Dev

运行将错误附加到文件并使用nohup的脚本

来自分类Dev

Bash:使用>运算符写入和附加到文件

来自分类Dev

使用bash脚本将文本插入文件(不附加)

来自分类Dev

无法使用php将数据附加到文件

来自分类Dev

如何使脚本命令附加到文件?

来自分类Dev

如何使脚本命令附加到文件?

来自分类Dev

将bash脚本的每个命令的stdout和stderr的输出附加到文件

来自分类Dev

Bash shell 脚本:将文本附加到现有文件的特定行而无需换行

来自分类Dev

使用ofstream附加到文件

来自分类Dev

使用pwrite附加到文件

来自分类Dev

使用pwrite附加到文件

来自分类Dev

bash在循环内外附加到文件

来自分类Dev

bash在循环内外附加到文件

来自分类Dev

附加到bash中的文件列表

来自分类Dev

Docker 使用 bash 脚本附加到 grep 重新启动的容器名称

来自分类Dev

bash-使用文件名使用sed附加到每个文件的每一行

来自分类Dev

无法将文字附加到文件

来自分类Dev

无法附加到 PHP 中的文件

来自分类Dev

如何在bash脚本中将一个包含“ <>”的文件附加到另一个文件

来自分类Dev

正确使用IO重定向在Linux脚本中将用户输入附加到文件中?

来自分类Dev

带有逗号分隔值的Bash脚本变量在附加到其他文件时不以逗号分隔

来自分类Dev

如何通过SQLPlus将SQL脚本附加到bash循环?

来自分类Dev

在bash脚本中将'-e'附加到字符串

来自分类Dev

如何使用bash将多行附加到文件中,在字符串前面加上“-”

Related 相关文章

  1. 1

    如何使用bash脚本将块字符串变量附加到文件?

  2. 2

    bash脚本将单词附加到文件名

  3. 3

    将程序的输出附加到文件bash脚本

  4. 4

    Bash脚本将netstat输出附加到文件?

  5. 5

    使用shell脚本将行附加到/ etc / hosts文件

  6. 6

    运行将错误附加到文件并使用nohup的脚本

  7. 7

    Bash:使用>运算符写入和附加到文件

  8. 8

    使用bash脚本将文本插入文件(不附加)

  9. 9

    无法使用php将数据附加到文件

  10. 10

    如何使脚本命令附加到文件?

  11. 11

    如何使脚本命令附加到文件?

  12. 12

    将bash脚本的每个命令的stdout和stderr的输出附加到文件

  13. 13

    Bash shell 脚本:将文本附加到现有文件的特定行而无需换行

  14. 14

    使用ofstream附加到文件

  15. 15

    使用pwrite附加到文件

  16. 16

    使用pwrite附加到文件

  17. 17

    bash在循环内外附加到文件

  18. 18

    bash在循环内外附加到文件

  19. 19

    附加到bash中的文件列表

  20. 20

    Docker 使用 bash 脚本附加到 grep 重新启动的容器名称

  21. 21

    bash-使用文件名使用sed附加到每个文件的每一行

  22. 22

    无法将文字附加到文件

  23. 23

    无法附加到 PHP 中的文件

  24. 24

    如何在bash脚本中将一个包含“ <>”的文件附加到另一个文件

  25. 25

    正确使用IO重定向在Linux脚本中将用户输入附加到文件中?

  26. 26

    带有逗号分隔值的Bash脚本变量在附加到其他文件时不以逗号分隔

  27. 27

    如何通过SQLPlus将SQL脚本附加到bash循环?

  28. 28

    在bash脚本中将'-e'附加到字符串

  29. 29

    如何使用bash将多行附加到文件中,在字符串前面加上“-”

热门标签

归档