linux - 输入文件没有被正确读取脚本 awk

标签 linux unix scripting awk

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

输入1.txt:

id above
id below
id still
id getting

输入2.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 表达式。

查找.awk

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

关于为什么我的 awk 不工作的想法?

最佳答案

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

关于linux - 输入文件没有被正确读取脚本 awk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372619/

相关文章:

java - 如何从java中的javascript调用返回数组?

scripting - 如何从命令提示符将 bool 值传递给 PowerShell 脚本

linux - 日期转换代码在不同机器上表现不同

linux - 如何自动化 bash 脚本

shell - 变量的变量

linux - 找不到命令

linux - 打印有关文本文件的统​​计信息的 Bash 脚本

linux - 在 Linux 中以编程方式修改 Windows DLL 的字符串表

android - ADB 看不到设备

linux - 删除指定目录中所有零大小的文件