【发布时间】: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 回车可能导致单行连接