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