[如果相关,我可以直接从sourceforge中的GNU指向源下载GNU awk V 3.1.6。
我正在使用Windows的wget获取URL页面。处理传入的文件后,我将其缩小为单行,必须从中提取一个很长的字符串值。最后一行看起来像这样:
<ENUM_TAG>content"href:e@5nUtw3Fc^b=tZjqpszvja$sb=Lp4YGH=+J_XuupctY9zE9=&KNWbphdFnM3=x4*A@a=W4YXZKV3TMSseQx66AHz9MBwdxY@B#&57t3%s6ZyQz3!aktRNzcWeUm*8^$B6L&rs5X%H3C3UT&BhnhXgAXnKZ7f2Luy*jYjRLLwn$P29WzuVzKVnd3nVc2AKRFRPb79gQ$w$Nea6cA!A5dGRQ6q+L7QxzCM%XcVaap-ezduw?W@YSz!^7SwwkKc"</ENUM_TAG>
我需要两个“符号之间的长字符串。
所以我将此结构与awk一起使用
type processedFile | awk -F "\"" "{print $2}"
并且我得到预期的输出
href:e@5nUtw3Fc^b=tZjqpszvja$sb=Lp4YGH=+J_XuupctY9zE9=&KNWbphdFnM3=x4*A@a=W4YXZKV3TMSseQx66AHz9MBwdxY@B#&57t3%s6ZyQz3!aktRNzcWeUm*8^$B6L&rs5X%H3C3UT&BhnhXgAXnKZ7f2Luy*jYjRLLwn$P29WzuVzKVnd3nVc2AKRFRPb79gQ$w$Nea6cA!A5dGRQ6q+L7QxzCM%XcVaap-ezduw?W@YSz!^7SwwkKc
但是当我运行相同的命令并将输出重定向到文件时,例如
type processedFile | awk -F "\"" "{print $2}" > tempDummy
我收到此错误消息:
awk: cmd. line:1: fatal: cannot open file `>' for reading (Invalid argument)
我认为\“字段分隔符使我有些痛苦,并且使最后一个”字符成为未封闭的字符串值,但是我不确定如何正确地做到这一点。顺便说一下,相同的构造可以很好地在我的centos盒子上运行。
非常感谢任何指针。我尝试读取我可以找到的所有自述文件,但是它们都没有触及输出重定向。
似乎您的命令无法将输出传递给awk
命令,所以您可以尝试以下内容,尽管未经过测试。
type processedFile 2>&1 | awk -F "\"" '{print $2}' > tempDummy
还使用"`` double quotes, where you should be using
'for
awk`代码。
如果上述方法不起作用,请尝试再进行一次。
type processedFile > out_file && awk -F "\"" '{print $2}' out_file > tempDummy