awk - 如何在使用值打印时删除 awk 空间
问题描述
我有一个 test.csv
#cat test.csv
a.b.c.d
a.b
a.b.c
a-a.b.c
a-a.b
(1) 我正在尝试打印第一个点之后的所有值,并且 (2) 不得打印最后一个点。
我在下面尝试但它提出了空格,实际文件大约有 10 亿条记录,知道如何在没有点的情况下打印,
#cat test.csv | awk -F. '{print $2,".",$3}'
b . c
b .
b . c
b . c
b .
期望的输出
b.c.d
b
b.c
b.c
b
解决方案
输出中的空格是因为您告诉 awk 添加空格。print 语句中的每一个,
都是您告诉 awkOFS
在输出中的该位置添加变量的值(默认情况下为单个空白字符)。代替:
awk -F. '{print $2,".",$3}'
尝试以下任何一种:
awk -F. '{print $2"."$3}'
awk 'BEGIN{FS=OFS="."} {print $2,$3}'
要使用 awk 获得所需的输出,可以:
awk '{sub(/[^.]*\./,"")}1'
但我真的建议你使用为这项任务设计的工具,切:
cut -d'.' -f2-
推荐阅读
- javascript - Can I have a div that has a parallax image also show the parallax'd image scroll up
- php - 将 API 中的 Json 插入数据库
- android - 更新到最新版本后,您需要在此活动中使用 Theme.AppCompat 主题(或后代)
- rcpp - 无法使用 Eigen 编译旋转 QR 分解(通过 RcppEigen)
- python - 如何在 Flask-Admin 中显示参考字段的实际字段?
- javascript - 带有 jQuery 的 PouchDB
- reactjs - 在反应本机导致错误的注销时清除 redux 存储
- node.js - How to integrate Mongoose and GridFS to NestJS?
- angular - 返回 Observable 的 Angular 服务的单元测试错误部分
- python - 嵌套列表中的最小值