【发布时间】:2016-07-08 16:34:01
【问题描述】:
#!/bin/bash
cat $1 | awk ' /Info/, /<\/Body>/ {print $0}' | while read line; do
file=`awk -F '>' "{print $4}"`
echo "$file"
done
基本上file 输入文件在awk 的第一行中删除了一些信息。现在我要做的是使用awk -F 找到一个变量并打印> 之后的内容,这是第四个字段。现在我不能只搜索>,因为该文件有 100 个,因为它是 html。
好的,也许有人可以回答这个问题,所以当我现在运行文件时,它不会查看第四个字段,但它只是删除了所有的“>”,这不是我试图找到 3 之后的字段的目标'>' 所以这将是第 4 场,但这不是我得到的?任何帮助都会很棒!
【问题讨论】:
-
awk应该在什么输入上运行?$4正在被 shell 扩展,因为您将 awk 脚本用双引号括起来。没有理由将awk的输出捕获到一个变量中,只是为了echo它。 -
它在一段时间内读取行;这样做基本上我所拥有的是一个我正在排序的大量文本的输入,所以我试图获取第三个“>”之后的第四个字段并将其保存到一个变量并打印该变量
-
您可能想要
awk "/>/{print $4}"。只是根据您的问题进行的猜测。 -
awk -F ...(fieldSep) 和awk -f ...(code-in-file) 之间存在很大差异,请更新您关注的-F or -f的主题行。很抱歉,但你的 Q 的其余部分很难理解。显示一些输入(文件或字符串),然后显示该输入的所需输出。祝你好运。 -
或许您应该显示完整代码而不是随机的sn-p?