linux awk 打印最后一列,使用awk打印从第n个到最后一个的所有列
sdaau..
6
这让我非常恼火,我坐下来写了一个类似cut的字段规范解析器,用GNU Awk 3.1.7测试.
首先,创建一个名为的新Awk库脚本pfcut,例如
sudo nano /usr/share/awk/pfcut
然后,粘贴下面的脚本,然后保存.之后,这是用法的样子:
$ echo "t1 t2 t3 t4 t5 t6 t7" | awk -f pfcut --source '/^/ { pfcut("-4"); }'
t1 t2 t3 t4
$ echo "t1 t2 t3 t4 t5 t6 t7" | awk -f pfcut --source '/^/ { pfcut("2-"); }'
t2 t3 t4 t5 t6 t7
$ echo "t1 t2 t3 t4 t5 t6 t7" | awk -f pfcut --source '/^/ { pfcut("-2,4,6-"); }'
t1 t2 t4 t6 t7
$ echo "alias awk-pfcut='awk -f pfcut --source'" >> ~/.bashrc
$ source ~/.bashrc # refresh bash aliases
...然后你可以打电话:
$ echo "t1 t2 t3 t4 t5 t6 t7" | awk-pfcut '/^/ { pfcut("-2,4,6-"); }'
t1 t2 t4 t6 t7
这是pfcut脚本的来源:
# pfcut - print fields like cut
#
# sdaau, GNU GPL
# Nov, 2013
function spfcut(formatstring)
{
# parse format string
numsplitscomma = split(formatstring, fsa, ",");
numspecparts = 0;
split("", parts); # clear/initialize array (for e.g. `tail` piping into `awk`)
for(i=1;i<=numsplitscomma;i++) {
commapart=fsa[i];
numsplitsminus = split(fsa[i], cpa, "-");
# assume here a range is always just two parts: "a-b"
# also assume user has already sorted the ranges
#print numsplitsminus, cpa[1], cpa[2]; # debug
if(numsplitsminus==2) {
if ((cpa[1]) == "") cpa[1] = 1;
if ((cpa[2]) == "") cpa[2] = NF;
for(j=cpa[1];j<=cpa[2];j++) {
parts[numspecparts++] = j;
}
} else parts[numspecparts++] = commapart;
}
n=asort(parts); outs="";
for(i=1;i<=n;i++) {
outs = outs sprintf("%s%s", $parts[i], (i==n)?"":OFS);
#print(i, parts[i]); # debug
}
return outs;
}
function pfcut(formatstring) {
print spfcut(formatstring);
}
linux awk 打印最后一列,使用awk打印从第n个到最后一个的所有列相关推荐
- linux中awk命令_Linux / Unix中的AWK命令
linux中awk命令 AWK is suitable for pattern search and processing. The script runs to search one or more ...
- Linux文本三剑客(grep、sed、awk)
目录 grep 1.什么是grep和rgrep? 2.使用grep 2.1.命令格式 2.2.命令功能 2.3.命令参数 3.实战演示 sed 1.认识sed 2.使用sed 2.1.命令格式 2.2 ...
- 彻底理解 Linux 的搜索工具: grep 和 awk
grep 官方手册 awk 官方手册, awk 学习资料 1. grep grep 用于打印匹配指定模式的行. 1.1 介绍 grep 命令从输入文件中查找匹配到给定模式列表的行.发现匹配到的行后,默 ...
- Linux Shell重定向 管道命令 grep搜索 awk编程 sed文件操作高阶函数
在编程中如果能够熟悉shell高阶语法,将对我们进阶为高级程序员有很大的帮助,本文将从Shell重定向 管道命令 awk编程 sed等方面展开介绍. 作者:有勇气的牛排 文章目录 1 shell重定向 ...
- Linux 三剑客(grep、sed、awk)
grep %全文搜索 Linux 命令三剑客,sed.grep.awk. sed:擅长数据修改. grep:擅长数据查找定位. awk:擅长数据切片,数据格式化,功能最复杂 基本正则表达式元字符 元字 ...
- Linux文本三剑客--grep、sed、awk
Linux文本三剑客–grep.sed.awk 文章目录 Linux文本三剑客--grep.sed.awk 1.grep 1.1什么是grep 1.2使用grep 命令格式 命令参数 基本正则表表达式 ...
- Linux 文件管理-文件内容-分析工具【awk】脚本处理文本和数据-Linux 文本操作三剑客
1. awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是li ...
- linux下字符串处理工具二:awk( 二),awk脚本
awk脚本 awk脚本是一个可执行的文件,常习惯以.awk命名. 结构: $test.awk #!/bin/awk -f #脚本系统中awk的位置BEGIN{} #脚本主体之前,执行些什么.该行内的语 ...
- linux下字符串处理工具二:awk(1)
awk工作原理 原理图 第一步:awk对文件或管道的内容一次只处理一次,将获取到的这一行赋给内部变量$0. 第二步:这一行的内容按awk内部变量FS定义的分隔符,缺省为空格(包括tab制表符)分解成字 ...
- awk取文本列_awk命令结构/内置变量/获取文本某行或某列
awk脚本基本结构 awk 'BEGIN{ print "start" }pattern{ commands }END{ print "end" }' file ...
最新文章
- python 调用函数内部参数
- Laravel学习笔记之Decorator Pattern
- python制作网页的步骤_使用httplib模块来制作Python下HTTP客户端的方法
- 从汉诺塔讲递归的思考方式
- leetcode 组合总和
- 【常识】高尔夫计分规则
- 【深度学习】吊打一切现有版本的YOLO!旷视重磅开源YOLOX:新一代目标检测性能速度担当!...
- rds_dbsync数据源同步工具
- VS2008下直接安装使用Boost库1 46 1版本
- linux遍历目录漏洞,Mutiny 多个目录遍历漏洞(CVE-2013-0136)
- Objective-C的Runtime System
- [转]远远走来一个绿茶婊
- 牛客小白月赛8: I. 路灯孤影(区间DP)
- android自动修音,唱吧自动修音app下载-唱吧自动修音 安卓版v8.6.0-PC6安卓网
- python 爬虫保存为word_微信公众号文章爬虫,本地word文档保存
- 1.1 爬虫入门介绍
- Poi-tl通过word模板生成文件页眉页脚冲突问题
- ⊱如果事与愿违,请相信一定另有安排
- ipad与macbook设置随行(ipad做笔记本副屏)
- Java获取当天0时0分0秒时间的方法
热门文章
- Win10如何使用BC3.1精简版
- 统计bed文件下的reads数目和GC含量
- Part 66 - Check及Uncheck所有CheckBox 同时删除多行数据记录的实现
- 诺诺开放平台(电子发票、智能编码、发票查验接口调用)
- 财务应付结算系统设计-发票(含账单发票差异调整)
- Win10(21h2)十一代i7,HUD750,打驱动一直重启
- 测试计划与测试方案区别
- 测试计划和测试方案的本质区别
- python设置主题背景
- 如何更改itunes备份位置_Mac怎么修改iTunes的备份路径 如何在 Mac 中修改iTunes的备份路径...