使用 grep 和 awk 的 BASH FOR 循环

标签 bash for-loop awk grep

我正在尝试让此脚本cat 一个文件并grep 877 的每一行和找到的每一行,打印第一列是 IP 并将其存储在主机中。每次都卡在 awk 上。我运行 sh -x some.sh 看看它卡在哪里。我应该打印到文件而不是列表吗?为什么它会卡在 awk 上?

hosts=()

FILENAME=/home/somethin/.hosts.conf

ips=`cat $FILENAME | grep -v '877'`

for line in $ips; do
     hosts=$(`awk '{print $1}'`)
done

echo $hosts

最佳答案

这一切都可以使用 awk 来完成:

hosts=( $(awk '/877/{print $1}' $FILENAME) )

echo "${hosts[@]}"

关于使用 grep 和 awk 的 BASH FOR 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17277370/

相关文章:

linux - SuSE - 如何在重新启动后重新启动由用户通过键盘输入启动的 Linux 后台进程

C - while 和 for 循环的奇怪行为

perl - (空?)readline 的返回未被控制结构捕获

bash - 如何修改以下 ps 命令以以逗号分隔值 (CSV) 格式打印?

linux - 使用 awk 过滤文本文件中的行

bash - 使用ssh将变量发送到远程服务器

bash - Vim 向 shell 发送空缓冲区

linux - 打破 Bash 中的嵌套函数循环

Python 3 更改 for 循环中字典键的值不起作用

mysql - 将 MySQL "INSERT"命令转换为文本