当其中一个是空格时,我们如何在 awk 命令中指定两个字段分隔符?我认为这可以通过在 awk 中使用嵌入式 if-else 条件来完成,但是我不确定确切的命令。
示例文件如下:
cat test.txt
Swapnil Engineer 20000
Avinash:Doctor:30000
Dattu GovntJob 50000
Amol:Master:10000
Run Code Online (Sandbox Code Playgroud)
我想打印第二列($2)。预期输出为:
Engineer
Doctor
GovntJob
Master
Run Code Online (Sandbox Code Playgroud)
当我尝试将空格和冒号都作为字段分隔符时,它因语法错误而失败:
awk -F[ :] '{print $2}' test.txt
awk: cmd. line:1: :]
awk: cmd. line:1: ^ syntax error
Run Code Online (Sandbox Code Playgroud)
我们如何使用两个字段分隔符并利用 awk 功能?
小智 16
你在正确的轨道上!
只需添加缺少的引号[ :]
:
awk -F'[ :]' '{print $2}' test.txt
Engineer
Doctor
GovntJob
Master
Run Code Online (Sandbox Code Playgroud)