2017-08-31 104 views
1

快速问题。基本awk - 在命令行中用斜线过滤awk

df -h 

给出以下输出

Filesystem  Size Used Avail Use% Mounted on 
udev   1.5G  0 1.5G 0% /dev 
tmpfs   302M 8.5M 294M 3% /run 
/dev/sda1  144G 28G 109G 21%/
tmpfs   1.5G  0 1.5G 0% /dev/shm 

目标:期待为线路输出与预期不工作/dev/sda1

109G/144G available, 21% used. 

下面的命令。

df -h | awk '/dev/sda { print $4"/"$2" available, "$5" used." }' 

给出以下内容。

Avail/Size available, Use% used. 
1.5G/1.5G available, 0% used. 
294M/302M available, 3% used. 
109G/144G available, 21% used. 
1.5G/1.5G available, 0% used. 

回答

2

您需要小的修正

/dev/sda 

/dev\/sda/ 

将成为

awk '/dev\/sda/ { print $4"/"$2" available, "$5" used." }' 
+0

'/ dev \/sda /'的开头和结尾是'/',表示它是正则表达式字符串? –

+0

@ClintonLam是'/ <这是你的模式或正则表达式>// –