Shell awk:循环通过制表符分隔的文件

Shell awk:循环通过制表符分隔的文件,shell,unix,awk,scripting,Shell,Unix,Awk,Scripting,输入csv文件包含以下内容,以制表符分隔 3915 LOW Thia Khiang LIU 我需要找到第四项,在上述情况下,它恰好是“刘” 但是,下面的脚本正在打印“Khiang”。它将空间视为选项卡 awk '{print "UID="$1"\tLN="$2"\tAlias="$4}' myInputFile.csv 明确指定tab作为字段分隔符: $ awk -F'\t' '{print "UID="$1"\tLN="$2"\tAlias="$4}' myInputFile.csv

输入csv文件包含以下内容,以制表符分隔

3915    LOW Thia Khiang LIU
我需要找到第四项,在上述情况下,它恰好是“刘”

但是,下面的脚本正在打印“Khiang”。它将空间视为选项卡

awk '{print "UID="$1"\tLN="$2"\tAlias="$4}' myInputFile.csv

明确指定tab作为字段分隔符:

$ awk -F'\t' '{print "UID="$1"\tLN="$2"\tAlias="$4}' myInputFile.csv
UID=3915    LN=LOW  Alias=LIU

默认情况下(以及将文字空格指定为字段分隔符时),
awk
将任何行内部的空格和/或制表符视为(单个)字段分隔符(并额外修剪前导和尾随空格)。

明确指定制表符为字段分隔符:

$ awk -F'\t' '{print "UID="$1"\tLN="$2"\tAlias="$4}' myInputFile.csv
UID=3915    LN=LOW  Alias=LIU

默认情况下(以及指定文字空间作为字段分隔符时),
awk将任何行内部的空格和/或制表符视为(单个)字段分隔符(并额外修剪前导和尾随空格)。

您还可以使用
{printf“UID=%s\tLN=%s\tAlias=%s\n”、$1、$2、$4}
甚至
开始{FS=OFS=“\t”}{print“UID=“$1”,LN=“$2”,Alias=“$4}
。您也可以使用
{printf”UID=%s\tLN=%s\tAlias=%s\n“,$1,$2,$4}
甚至
开始{FS=OFS=“\t”}{print“UID=“$1”,LN=“$2”,Alias=“$4}