【问题标题】:input file isn't being read correctly scripting awk输入文件没有被正确读取脚本 awk
【发布时间】:2013-02-28 15:19:25
【问题描述】:

您好,我有两个输入文件。

input1.txt:

id above
id below
id still
id getting

input2.txt

id above
value above the sky

id below
value under the chair

我正在尝试执行 awk 命令,但它显示为空。

 awk -f find.awk input1.txt input2.txt

我知道我的 awk 有效,因为我输入了 2 个不同的 txt 文件,并且所有输出都是正确且可见的。

不同的input2.txt文件的区别是……

当我在 windows 机器上使用记事本时,整个文件变成了一个字符串,而如果你使用任何 txt 编辑器,它会被格式化为单独的行。

记事本上的示例 input2.txt。

  id above value above the sky id below value under the chair

我不能只通过 id 重新解析这个输入,因为我的真实 txt 文件有更多数据......这是不一致的,所以我不能只搜索字符串或 reg 表达式。

find.awk

 FNR==NR  { id[$0]; next }  
 $0 in id { f=1 }           
 f                          
 NF==0    { f=0 }     

关于为什么我的 awk 无法正常工作的想法?

【问题讨论】:

  • 用 find.awk 更新了描述
  • 您是否在 Windows 中创建输入文件并使用回车将它们发送到 UNIX/Linux?
  • 嗯。不?我应该这样做吗? txt文件给了我。我试图解析它。我不知道为什么以前的人使用。
  • 所以我在 windows 上使用 msk 工具包。
  • 不,你不应该——我问是因为我认为 DOS 回车可能导致单行连接

标签: linux unix scripting awk


【解决方案1】:

在输入文件上运行“dos2unix”,然后再对它们运行 awk。 man dos2unix。

【讨论】:

  • 我听说有一个叫做“互联网”的东西或者一些人发现对查找信息有用的东西......
猜你喜欢
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多