简体   繁体   English

使用sed处理df输出

[英]Manipulate df output with sed

I have a question about sed. 我对sed有疑问。

Output: 输出:

Filesystem              avail
rpool/ROOT/s10_u11_201704 244719726

Wanted information: 所需信息:

s10_u11_201704

I tried: 我试过了:

df -b / | sed '1d;s/.*\/\(*\ \)\ .*/\1/g'

The \\(*\\ \\) does not work. \\(*\\ \\)不起作用。

using awk : 使用awk

df -b / |awk -F'/' 'NR>1{split($NF,a," ");print a[1]}' 
s10_u11_201704

Using sed : 使用sed

df -b / |sed -r '1d;s|(^.*)/([^ ]+).*|\2|g'
s10_u11_201704

Disclaimer: df -b is not available in any of available distros to me. 免责声明: df -b在我所有可用的发行版中均不可用。

Short awk approach: 简短的awk方法:

df --output=source | awk -F'/' '{print $NF}'

  • --output=source ( --output[=FIELD_LIST] ) - use the output format defined by FIELD_LIST --output=source--output[=FIELD_LIST] )-使用FIELD_LIST定义的输出格式

  • -F'/' - treating / as field separator -F'/' -处理/作为字段分隔符

  • $NF - the last field value $NF最后一个字段值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM