linux shell命令之管道(awk命令)


awk命令與管道

awk命令格式為: | [-F 域分隔符] 'awk程序段'

string="Speeding up small jobs in Hadoop"
echo $string | awk '{print length($0)}' #計算string的長度
32

echo $string | awk '{print length($1)}' #計算string第1域的長度
8

echo $string | awk '{print substr($0,1,8)}' #抽取string字符串的第1~8個字符
Speeding

echo $string | awk '{print substr($0,25)}' #從string 第25個字符開始
n Hadoop

echo $string | awk '{print substr($string,25)}' #awk可以解析string變量名
n Hadoop

#awk 調用Linux命令時需要用雙引號將命令引起來,如下:
awk -F ':' '{print $1 | "sort"}' passwd
_apt
avahi
avahi-autoipd
backup
bin
colord
daemon
daheng
dnsmasq
ftp
games
gnats
guest-3xlvrb
guest-lwbna2
guest-m9suhb
guest-vho03v
hplip
irc
kernoops
li
lightdm
list
lp
mail
man
messagebus
mysql
news
nobody
proxy
pulse
root
rtkit
saned
speech-dispatcher
sshd
statd
sync
sys
syslog
systemd-bus-proxy
systemd-network
systemd-resolve
systemd-timesync
usbmux
user1
user2
uucp
uuidd
whoopsie
www-data

#如下, ls /usr命令的結果逐一傳給getline d ,打印d變量,直到
ls /usr命令的結果全部處理結束
awk 'BEGIN{while (("ls /usr" | getline d )>0) print d}'
amd64-mingw32msvc
bin
games
i586-mingw32msvc
include
lib
lib32
libexec
libx32
local
locale
sbin
share
src

df -k | awk '$4 > 1000000'
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 253769348 85556484 155299116 36% /

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM