我正在尝试使用awk删除文本文件中的前三个字段.删除前三个字段很容易.但是线路的其余部分被awk搞砸了:分隔符从一个标签变为另一个空格
这是我尝试过的:
head pivot.threeb.tsv | awk 'BEGIN {IFS="\t"} {$1=$2=$3=""; print }'
Run Code Online (Sandbox Code Playgroud)
前三列已正确删除.问题是输出结束时,列$ 4 $ 5 $ 6等之间的选项卡转换为空格.
更新:标记为重复的另一个问题是在此之后创建的:查看日期.
首先,如ED评论,您必须FS在awk中使用字段分隔符.
tab变成space你的输出,因为你没有定义OFS.
awk 'BEGIN{FS=OFS="\t"}{$1=$2=$3="";print}' file
Run Code Online (Sandbox Code Playgroud)
这将删除前3个字段,并将其余文本保持为"未触动"(您将看到前3个选项卡).也将在输出<tab>中保留.
awk 'BEGIN{FS=OFS="\t"}{print $4,$5,$6}' file
Run Code Online (Sandbox Code Playgroud)
将输出没有前导空格/制表符.但是如果您有500列,则必须在循环中执行,或使用sub函数或考虑其他工具,例如.
| 归档时间: |
|
| 查看次数: |
8459 次 |
| 最近记录: |