awk忽略大小写

时间:2013-01-22 04:45:08

标签: linux bash awk

file.txt

file format  = cust:hdb

file data =   ted Ref:4rm
  

读取-p“Cust:”cust

用户密钥:ted ref

grep -i -q "$cust" "file"

系统能够忽略大小写并读取输入

read -p "NewCust:" cust2

用户密钥:Ted Ref

  

awk -F:-v OFS =: - v cust =“$ cust”-v cust =“$ cust2”-v hdb =“$ hdb”   '$ 1 == cust&& $ 2 == hdb {$ 1 = cust2;} 1'文件

我如何设置这个以便awk可以忽略大小写并更新到文件?

2 个答案:

答案 0 :(得分:4)

除了IGNORECASE之外,您还可以将GNU awk中匹配的项目转换为小写tolower()

awk -F : -v OFS=: -v cust="$cust" -v cust="$cust2" -v hdb="$hdb" 'tolower($1)==cust && tolower($2)==hdb {$1=cust2;}1'

GNU awk文档提供了this page区分大小写。

答案 1 :(得分:0)

一种方式:

IGNORECASE=1 awk -F : -v OFS=: -v cust="$cust" -v cust="$cust2" -v hdb="$hdb" '$1==cust && $2==hdb {$1=cust2;}1' file