awk - 使用列数据打印列的 awk 命令
问题描述
cat file1.txt | awk -F '{print $1 "|~|" $2 "|~|" $3}' > file2.txt
我正在使用上面的命令从 file1 中过滤前三列并放入文件中。
但只获取列名而不是列数据。
怎么做?
|~|
- 是分隔符。
file1.txt的值为:
a|~|b|~|c|~|d|~|e
1|~|2|~|3|~|4|~|5
11|~|22|~|33|~|44|~|55
111|~|222|~|333|~|444|~|555
我的加急输出是:
a|~|b|~|c
1|~|2|~|3
11|~|22|~|33
111|~|222|~|333
解决方案
使用您显示的示例,请尝试以下awk
代码。您需要将字段分隔符设置为|~|
并从行中删除起始空间,然后打印行。
awk -F'\\|~\\|' -v OFS='|~|' '{sub(/^[[:blank:]]+/,"");print $1,$2,$3}' Input_file
如果您想保留空格(在编辑之前的初始帖子中),请尝试以下操作:
awk -F'\\|~\\|' -v OFS='|~|' '{print $1,$2,$3}' Input_file
注意:与房间里的用户聊天并了解为什么此代码由于使用错误而对用户不起作用gunzip -c file
,其输出被保存到用户正在运行awk
程序的变量中,因此更正该命令生成正确的文件运行awk
良好。将此添加为未来读者的参考。
推荐阅读
- flutter - 是否有 dart 函数注释使类型检查器执行类型缩小或条件断言
- scale - R中的Levelplot - 轴标签的比例
- node.js - Kubernetes/Istio - 出错时重启服务
- javascript - 是否可以在赛普拉斯的一次测试中自动化多个网址?
- mongodb - 在MongoDB中创建数据时,有一个自动生成的值,我该如何控制呢?
- c# - 使用 EWS API 将 EmailBody 保存为 PDF 文件
- fp-ts - 弃用 getFoldableComposition、option、array 等后的重构
- java - 我怎样才能回到已经执行的程序的一部分?
- python - 如何在 Python 代码中实现这个 Oracel SQL 图形查询?
- mysql - 替换 MAMP PRO 中的主 mysql 数据库