awk 中的两个字段分隔符(冒号和空格)

awk 中的两个字段分隔符(冒号和空格)

当 awk 命令中其中之一是空格时,如何指定两个字段分隔符?我认为这可以通过使用 awk 中嵌入的 if-else 条件来完成,但是我不确定确切的命令。

示例文件如下:

cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000

我想打印第二列($2)。预期输出为:

Engineer
Doctor
GovntJob
Master

当我尝试将空格和冒号都用作字段分隔符时,它失败并出现语法错误:

awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error

我们如何使用两个字段分隔符并利用 awk 功能?

答案1

你走在正确的轨道上!
只需添加周围缺少的引号[ :]

awk -F'[ :]' '{print $2}' test.txt
Engineer
Doctor
GovntJob
Master

相关内容