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