[转帖]awk(二) 输出/删除指定列

awk,输出,删除,指定 · 浏览次数 : 0

小编点评

```bash # 打印每行的前5列,并按行输出 cat input.file2 | head -n 5 | column -s $'\t' # 打印多列,并更改分隔符为TAB cat input.file3 | column -s $'\t' -d $'\n' # 删除最后一列 cat input.file4 | sed 's/^\s*$//' # 删除第三列 cat input.file5 | sed 's/\s*$//' # 每三行作为一列输出 cat input.file1 | sed 'N;s/\n/\t/;' ```

正文

https://www.jianshu.com/p/d26356ffccd7

 

1. 输出每行的前5列,并按行输出

    awk '{for(i=1;i<6;i++)printf("%s ",$i);printf("\n")}' input.file

2. 输出多列,并更改分隔符为TAB

    awk '{for(i=2;i<=NF;i++)printf("%s\t",$i);print}' input.file

3. 删除最后一列

    awk '{$NF="";print}' input.file

4. 删除第三列

    awk '{$3="";print}' input.file

5. 每三行作为一列输出

    awk '{if(NR%3 != 0){ORS="\t"}else{ORS="\n"}print}' input.file

与[转帖]awk(二) 输出/删除指定列相似的内容:

[转帖]awk(二) 输出/删除指定列

https://www.jianshu.com/p/d26356ffccd7 1. 输出每行的前5列,并按行输出 awk '{for(i=1;i<6;i++)printf("%s ",$i);printf("\n")}' input.file 2. 输出多列,并更改分隔符为TAB awk '{for

[转帖]shell 把以空格分隔的变量 分割后的每个字段赋值给变量

比如我有一个变量 “123 456 789”,要求以空格为分隔符把这个变量分隔,并把分隔后的字段分别赋值给变量,即a=123;b=456;c=789 共有3中方法: 法一:先定义一个数组,然后把分隔出来的字段赋值给数组中的每一个元素 法二:通过eval+赋值的方式 法三:通过多次awk把每个字段赋值

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打

[转帖]awk 中 FS的用法

https://www.cnblogs.com/rohens-hbg/p/5510890.html 在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /

[转帖]awk 文本处理

https://juejin.cn/post/6844903860629143559 awk 文本处理 awk 是一种样式扫描和处理语言,使用 Linux 的 awk 命令可以高效快捷地进行文本处理。awk 扫描文本的每一行并执行指定的命令。 awk 诞生于 1977 年,借鉴了 C 语言等编程语言

[转帖]awk——getline

http://t.zoukankan.com/panscience-p-4685698.html A.getline从整体上来说,应这么理解它的用法: 当其左右无重定向符 | 或 < 时,getline作用于当前文件,读入当前文件的第一行给其后跟的变量var 或$0(无变量);应该注意到,由于awk

[转帖]awk(五) 字符串函数(substr截取)

https://www.jianshu.com/p/bee599fabe85 1. substr(s,p) 返回字符串s中从p开始到最后部分 每一行从第101个字符开始截取到末尾awk '{print substr($0, 101)}' input.file 2. substr(s,p,n) 返回字

[转帖]awk(四) 字符串函数(gsub替换)

https://www.jianshu.com/p/d465f4dccbbe 1. gsub(r,s) 在整个$0中用s替代r 删除文件中所有逗号awk 'gsub(",", ""){print}' input.file# 注意gsub内部用双引号"" 2. gsub(r,s,t) 在整个t中用s替

[转帖]awk(三) 列运算

https://www.jianshu.com/p/b46f783832e3 1. 求每一行中指定列的最大/小值 awk '{m=0;for(x=5;x<=NF;x++)if($x>m) {m=$x};print m}' input.file # 求第5列到最后一列中每行的最大值 awk '{m=0

[转帖]awk(一) 基本操作符

https://www.jianshu.com/p/e3fa91a8d9f2 $0 表示整个当前行 $1 每行第一个字段 NF 字段数量变量 NR 每行的记录号,多文件记录递增 FNR 与NR类似,不过多文件记录不递增,每个文件都从1开始 \t 制表符 \n 换行符 FS BEGIN时定义分隔符 R