A=44echo "ABCD" | awk -v GET_A=$A ’{print GET_A}’ 說明:-v選項用於定義參數,這裏表示將變量A的值賦予GET_A。 有多少個變量須要賦值,就須要多少個-v選項。與之等價的:應用於腳本中: #! /bin/bash sort -n filename |awk -F ':' '{print $1}'|uniq >id.txt for id in `cat id.txt`; do echo "[$id]" awk -v id2=$id -F ':' '$1==id2 {print $2}' filename // 另外的方式爲: awk -F ':' '$1=="'id'" {print $2}' filename done 附件: cat filename 1111111:13443253456 2222222:13211222122 1111111:13643543544 3333333:12341243123 2222222:12123123123 運行腳本後結果爲: [1111111] 13443253456 13643543544 [2222222] 13211222122 12123123123 [3333333] 12341243123 思路: 先建立一個後綴爲 .sh 的文件,而後將內容,添加進入,並將其中failname改成你建立的 後綴爲 .sh 的文件 而後去執行shell文件——>sh 加 文件,便可看到結果
[root@hf-01 awk]# awk 'gsub(/root/,"1111")' test.txt //把文件中全部的root替換爲1111 1111x:0:0:1111:/1111:/bin/bash operator:x:11:0:operator:/1111:/sbin/nologin [root@hf-01 awk]# awk -F ':' 'gsub(/root/,"lll",$1) {print $0}' test.txt //把$1 中的root替換爲lll lllx 0 0 root /root /bin/bash 在不加-F ':' 指定分隔符,獲得的結果不一樣 [root@hf-01 awk]# awk 'gsub(/root/,"AAA",$1) {print $0}' test.txt AAAx:0:0:AAA:/AAA:/bin/bash operator:x:11:0:operator:/AAA:/sbin/nologin
grep -E '123|abc' filename // 找出文件(filename)中包含123或者包含abc的行 egrep '123|abc' filename //用egrep一樣能夠實現 awk '/123|abc/' filename // awk 的實現方式
方法一:html
head -3 |awk '{print "This is a '"'"'"$1}' test.txt //在前3行中,添加字符" This is a 'shell
方法二:bash
head -2 test.txt |awk '{print"11'''" $1}' //在前2行中,添加字符11 '函數
添加雙引號字符this
head -2 test.txt |awk '{print"aaa"" $1}' //在前2行中,添加字符aaa "code
單引號 方法一: [root@localhost ~]# head -3 |awk '{print "This is a '"'"'"$1}' test.txt //在前3行中,添加字符" This is a ' This is a 'root:x:0:0:root:/root:/bin/bash This is a '&&& This is a 'as***fsdf**** 方法二 [root@localhost ~]# head -2 test.txt |awk '{print"11'\''" $1}' //在前2行中,添加字符11 ' 11'root:x:0:0:root:/root:/bin/bash 11'&&& 雙引號 [root@localhost ~]# head -2 test.txt |awk '{print"aaa\"" $1}' //在前2行中,添加字符aaa " aaa"root:x:0:0:root:/root:/bin/bash aaa"&&&
[root@localhost ~]# head -2 test.txt|sed 's/\(.*\)/11 '"'"'&/'g 11 'root:x:0:0:root:/root:/bin/bash 11 '&&&
[root@hf-01 ~]# cat 2.txt a v c 1 f g as 4 5a dd && a. 1 2 [root@hf-01 ~]# cat 3.txt aa a 6 13 f45 1 f fg abc 6a2 asf 4fa cda abc 1 [root@hf-01 ~]# paste 2.txt 3.txt //將2和3文件中相同的行合併到一行 a v c aa a 6 1 f g 13 f45 as 4 5a 1 f fg dd && a. abc 6a2 asf 4fa 1 2 cda abc 1 [root@hf-01 ~]# paste -d '+' 2.txt 3.txt //把文件2和3合併到一行中,並用+ 號字符鏈接 a v c+aa a 6 1 f g+13 f45 as 4 5a+1 f fg dd && a.+abc 6a2 asf 4fa 1 2+cda +abc +1 [root@hf-01 ~]#