国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

linux中awk排除某列輸出的實現示例

2019-11-14 09:49:28
字體:
來源:轉載
供稿:網友

linux中awk排除某列輸出的實現示例

awk是一款不錯的工具了我們可以利用awk來進行篩選了下面我們一起來看一篇關于awk排除某列輸出一個命令操作方式,具體的如下。

awk工具在文本處理上非常強大,我們常用的用法是選擇某列輸出,如PRint $1,$3 。不過在特殊的情況下,也會遇到只排除例個某列,其他列都正常輸出 。針對 awk排除某列,這里就做個小總結。 比如我的文件如下:

[root@361way tmp]# more disk_ioxvda 1.49 2.37 11.71 10615426 52410436xvdb 3.50 6.60 80.08 29535297 358410976xvda 0.00 0.00 0.00 0 0xvdb 5.05 12.12 72.73 12 72

排除第一列(打印第2列到最后):

awk '{$1=""; print $0}' 文件名

排除多列:

awk '{$1=$2=""; print $0}' 文件名

以上這種寫法感覺是比較好的,不過如果前面排除的列比較多,且按順序過來的,可以使用如下的方法 ,比較方便:

awk '{for(i=2;i<=NF;i++){printf "%s ", $i}; printf "/n"}'awk '{out=$2; for(i=3;i<=NF;i++){out=out" "$i}; print out}'awk '{print substr($0,length($1)+1);}'awk '{ORS=" "; for(i=4;i<=NF;i++) print $i;print "/n"}'awk '{sub(/([^ ]+ +){3}/,"")}1'

還有其他一些衍生寫法如下:

awk '{sub(/[^ ]+ /, ""); print $0}'awk '{$1=$2=$3=""}sub("^"FS"*","")'awk -v n=3 '{ for (i=n+1; i<=NF; i++){printf("%s%s",$i,i==NF?RS:OFS);} }'

也可以通過一個腳本進行引用搞定,如下: 腳本1:

[root@361way tmp]# cat cols.sh#!/bin/bashawk -v s=$1 '{for(i=s; i<=NF;i++) printf "%-5s", $i; print "" }'# 進行切分操作的命令如下:# cat 文件名 | ./cols.sh 3# cat 文件名 | ./cols.sh 5

腳本2: 腳本1還可以做下午簡單的修改,變成腳本2,可以指定一個范圍,如下:

#!/bin/bashawk -v s=$1 -v e=$2 '{for(i=s; i<=e;i++) printf "%-5s", $i; print "" }'

使用命令如下:

echo "1 2 3 4 5 6 7 8 9 10 11 12 13 14" | ./cols.sh 7 9
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巧家县| 新竹市| 巴里| 石嘴山市| 北宁市| 隆德县| 秭归县| 铅山县| 卓尼县| 博爱县| 牟定县| 宜君县| 永和县| 新昌县| 新泰市| 新野县| 霞浦县| 浮山县| 毕节市| 乾安县| 宜丰县| 天镇县| 蒙阴县| 陕西省| 天津市| 荥阳市| 阳春市| 南木林县| 汉寿县| 保靖县| 涿州市| 天峻县| 鞍山市| 淮北市| 济南市| 通榆县| 邹城市| 城固县| 建德市| 武宁县| 万宁市|