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个到最后一个的所有列相关推荐

  1. linux中awk命令_Linux / Unix中的AWK命令

    linux中awk命令 AWK is suitable for pattern search and processing. The script runs to search one or more ...

  2. 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 ...

  3. 彻底理解 Linux 的搜索工具: grep 和 awk

    grep 官方手册 awk 官方手册, awk 学习资料 1. grep grep 用于打印匹配指定模式的行. 1.1 介绍 grep 命令从输入文件中查找匹配到给定模式列表的行.发现匹配到的行后,默 ...

  4. Linux Shell重定向 管道命令 grep搜索 awk编程 sed文件操作高阶函数

    在编程中如果能够熟悉shell高阶语法,将对我们进阶为高级程序员有很大的帮助,本文将从Shell重定向 管道命令 awk编程 sed等方面展开介绍. 作者:有勇气的牛排 文章目录 1 shell重定向 ...

  5. Linux 三剑客(grep、sed、awk)

    grep %全文搜索 Linux 命令三剑客,sed.grep.awk. sed:擅长数据修改. grep:擅长数据查找定位. awk:擅长数据切片,数据格式化,功能最复杂 基本正则表达式元字符 元字 ...

  6. Linux文本三剑客--grep、sed、awk

    Linux文本三剑客–grep.sed.awk 文章目录 Linux文本三剑客--grep.sed.awk 1.grep 1.1什么是grep 1.2使用grep 命令格式 命令参数 基本正则表表达式 ...

  7. Linux 文件管理-文件内容-分析工具【awk】脚本处理文本和数据-Linux 文本操作三剑客

    1. awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是li ...

  8. linux下字符串处理工具二:awk( 二),awk脚本

    awk脚本 awk脚本是一个可执行的文件,常习惯以.awk命名. 结构: $test.awk #!/bin/awk -f #脚本系统中awk的位置BEGIN{} #脚本主体之前,执行些什么.该行内的语 ...

  9. linux下字符串处理工具二:awk(1)

    awk工作原理 原理图 第一步:awk对文件或管道的内容一次只处理一次,将获取到的这一行赋给内部变量$0. 第二步:这一行的内容按awk内部变量FS定义的分隔符,缺省为空格(包括tab制表符)分解成字 ...

  10. awk取文本列_awk命令结构/内置变量/获取文本某行或某列

    awk脚本基本结构 awk 'BEGIN{ print "start" }pattern{ commands }END{ print "end" }' file ...

最新文章

  1. python 调用函数内部参数
  2. Laravel学习笔记之Decorator Pattern
  3. python制作网页的步骤_使用httplib模块来制作Python下HTTP客户端的方法
  4. 从汉诺塔讲递归的思考方式
  5. leetcode 组合总和
  6. 【常识】高尔夫计分规则
  7. 【深度学习】吊打一切现有版本的YOLO!旷视重磅开源YOLOX:新一代目标检测性能速度担当!...
  8. rds_dbsync数据源同步工具
  9. VS2008下直接安装使用Boost库1 46 1版本
  10. linux遍历目录漏洞,Mutiny 多个目录遍历漏洞(CVE-2013-0136)
  11. Objective-C的Runtime System
  12. [转]远远走来一个绿茶婊
  13. 牛客小白月赛8: I. 路灯孤影(区间DP)
  14. android自动修音,唱吧自动修音app下载-唱吧自动修音 安卓版v8.6.0-PC6安卓网
  15. python 爬虫保存为word_微信公众号文章爬虫,本地word文档保存
  16. 1.1 爬虫入门介绍
  17. Poi-tl通过word模板生成文件页眉页脚冲突问题
  18. ⊱如果事与愿违,请相信一定另有安排
  19. ipad与macbook设置随行(ipad做笔记本副屏)
  20. Java获取当天0时0分0秒时间的方法

热门文章

  1. Win10如何使用BC3.1精简版
  2. 统计bed文件下的reads数目和GC含量
  3. Part 66 - Check及Uncheck所有CheckBox 同时删除多行数据记录的实现
  4. 诺诺开放平台(电子发票、智能编码、发票查验接口调用)
  5. 财务应付结算系统设计-发票(含账单发票差异调整)
  6. Win10(21h2)十一代i7,HUD750,打驱动一直重启
  7. 测试计划与测试方案区别
  8. 测试计划和测试方案的本质区别
  9. python设置主题背景
  10. 如何更改itunes备份位置_Mac怎么修改iTunes的备份路径 如何在 Mac 中修改iTunes的备份路径...