我有一个像
这样的文件Filesystem Size Used Avail Use% Mounted on
/abc/xyz/mnop
82G 7.7G 70G 10% /
hello 32G 922M 31G 3% /abc/asd
/abc/xyz 477M 118M 334M 27% /asd
/abc/xyz 50G 9.4G 38G 21% /ad
/abc/xyz 79G 27G 49G 36% /asd
/abc/xyz 30G 7.9G 21G 29% /sd
/abc/xyz 197G 2.4G 185G 2% /asd
xyz:/backups/abc
500G 18G 483G 4% /asdas
abc
1.9T 1.5T 405G 79% /media/Scratch
我只想要%之前的两个字符,即10,3,27,21等等,我将逐一比较85或更大或更小的值。但是应该跳过第一行使用%。请建议我如何在变量中逐个获取这些值,或者在文件中使用条件语句与85进行比较。
我使用 grep -E -o"。{0,2}%" test.txt ,但是它给%带有例如10%的值以及我不想要的se%。
由于
答案 0 :(得分:1)
您可以使用awk
:
df -h | awk 'NR>1{print $5+0}'
或者使用文件:
awk 'NR>1{print $5+0}' test.txt
使用gnu grep
:
grep -oP '\d+(?=%)' test.txt
答案 1 :(得分:0)
使用perl:perl -ne'打印$ 1。 "" if /(\ d {1,2})\%/'的test.txt
答案 2 :(得分:0)
使用以下命令有助于获得所需的结果
cat text.txt | cut -d'%' -f1 | awk '{print $NF }'