如何使用awk打印特定字符串的整行?

时间:2016-08-06 09:54:39

标签: bash awk

我的文件名是data.txt

employer_name薪水指定

kundan 20000账户 amit 15000外野手 chandan 25000 assi-hr .... .... .....

以这种方式创建了一个文件。我正在寻找使用awk可以 当我想搜索特定的雇主数据时,在一行中打印雇主姓名,工资和设计。

awk是否读取excel文件?

1 个答案:

答案 0 :(得分:0)

如果您的数据文件确实是以空格分隔的数据序列,那么这样的方法就可以了:

$ cat >> find.awk
BEGIN {
    RS=" "
} 
NR%3==1 {
    name=$1
} 
name==find { 
    printf "%s%s", $1, (NR%3 ? OFS : ORS)
}

测试它:

$ awk -f find.awk -v find="kundan" data.txt
kundan 20000 accounts

如果您的数据是:

kundan
20000
accounts
...

只需删除BEGIN块。如果您的数据是:

kundan 20000 accounts
amit 15000 fielder
...

使用grep ^kundan data.txtawk -v find="kundan" '$1==find' data.txt,但后者写的时间更长。

AWK本身不会读取Excel文件。您可以将Excel文件导出为CSV文件并针对它们运行AWK。 AWK喜欢CSV文件。 :d