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

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

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

2019-11-11 07:32:17
字體:
來源:轉載
供稿:網友

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
上一篇:牛式

下一篇:VBA 偏移 Offset

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹东市| 霍城县| 绥棱县| 金沙县| 姚安县| 酉阳| 炉霍县| 遂平县| 金塔县| 香格里拉县| 揭东县| 迭部县| 新竹市| 米脂县| 赫章县| 尉氏县| 冀州市| 阿拉善盟| 耒阳市| 武隆县| 望城县| 杂多县| 江永县| 九龙城区| 中阳县| 鲁山县| 峨山| 新兴县| 菏泽市| 泌阳县| 饶平县| 巩义市| 五莲县| 衡山县| 郎溪县| 南陵县| 江口县| 伊宁市| 福鼎市| 望城县| 商城县|