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% /