国产探花免费观看_亚洲丰满少妇自慰呻吟_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
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 顺义区| 东海县| 石林| 西畴县| 专栏| 分宜县| 当雄县| 高安市| 双桥区| 高台县| 竹溪县| 乐都县| 翁牛特旗| 江阴市| 沙湾县| 江安县| 黄浦区| 荥经县| 二连浩特市| 邳州市| 大理市| 汉阴县| 锡林浩特市| 常德市| 洞口县| 遂川县| 涞源县| 张家川| 清流县| 广丰县| 抚顺县| 邢台县| 西乌珠穆沁旗| 电白县| 南京市| 石狮市| 广州市| 子洲县| 沙湾县| 喀喇沁旗| 轮台县|