linux - awk 命令 : how to tell it to distinguish between space and tab delimiter

标签 linux awk printf

我使用这个命令,awk '{print $1}' "$line",从文件中获取一列数据,如下所示:(下划线表示制表符作为分隔符,示例是三列数据)

Joe Jonas_____8_____45  
Cersei Lann_____4_____23  
Bo Tox_____6_____28  
Mis Ter Yo_____7_____89  

当我运行命令时,说要获取第一列,但是输出显示如下:

Joe  
Cersei  
Bo  
Mis  

如何让命令忽略第一列数据中的空格?

最佳答案

将字段分隔符 (-F) 更改为制表符:

$ awk -F$'\t*' '{gsub(/ /,"_",$1); print $1,$2}' test2.in
Joe_Jonas 8
Cersei_Lann 4
Bo_Tox 6
Mis_Ter_Yo 7

编辑:在第一列使用 gsub 将空格替换为下划线。

关于linux - awk 命令 : how to tell it to distinguish between space and tab delimiter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38473781/

相关文章:

phpseclib exec() 返回未格式化的文本?

regex - 如何使用sed分割字符串?

编译器在打印变量地址时发出警告

c++ - 区分头文件和编译器/语言标准/os/glibc

android - Nexus 7 在adb linux 下显示离线

linux - Cronjob 没有运行 bash 脚本

regex - 修剪目录中所有文件的一部分文件扩展名 - Linux

linux - 使用环境变量(从 awk 命令获取其值)作为 while 中的条件

c - _Bool 的 printf 转换说明符?

c printf pretty-print 格式