window下的一次awk脚本实践

本文详细介绍了如何将一个在Linux环境下运行的awk脚本移植到Windows系统,并探讨了两者之间的语法差异,包括批处理文件(sh/bat)的编写规则和awk命令的使用方式。在Windows下,需要特别注意单引号和双引号的使用,以及awk命令参数的转义。此外,还提供了适用于Windows的awk.exe下载链接。

一直在linux下写awk脚本,今天移植了一次,具体如下,

linux下程序总共两个sh,一个awk,

#process.sh
#!/bin/bash
dos2unix GmidChecklist.csv
awk -F',' '{if(NR > 1) {filename = $1; field = $2; cmd="./read_field.sh "filename" "field; system(cmd) }}' GmidChecklist.csv > result.txt

#read_field.sh
#!/bin/bash
awk -v field=$2 -F',' -f read_field.awk table/$1

#read_field.awk
#!/bin/awk
BEGIN{
  filename = ""; 
}
{ 
  if(filename == "") 
  {
    split(FILENAME, array, "/");
    filename=array[length(array)];
  }

  if(NR==1)
  {
    for(i=0; i < NF; i++)
    {   
      if($i==field)
      {   
        field_idx = i;
      }   
    }    
  }

  if(NR > 3)
  {
    print $field_idx" "filename;
  }
}

windows下程序总共两个bat,一个awk,

::process.bat
@ECHO OFF
.\awk.exe -F","  "{if(NR > 1) {filename = $1; field = $2; cmd="""read_field.bat """filename""" """field; system(cmd) }}" .\GmidChecklist.csv > output.txt
pause

::read
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值