2017-05-31 97 views
0

我有一個關於sed的問題。用sed操作df輸出

輸出:

Filesystem    avail 
rpool/ROOT/s10_u11_201704 244719726 

通緝信息:

s10_u11_201704 

我想:

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

\(*\ \)不起作用。

+1

注意,你可以使用'--output = source'只打印文件系統信息。請參閱[如何在linux df命令中選擇特定列](https://stackoverflow.com/a/28809214/1983854)。 – fedorqui

回答

3

使用awk

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

使用sed

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

免責聲明:df -b沒有任何可用的發行版提供給我。

+0

我想知道,因爲我有'df(GNU coreutils)8.21',但沒有'-b'選項。 –

+0

我也有沒有'-b'標誌的'df'。只是模仿OP的理解。 –

+0

我明白了,但RomanPerekhrest的回答是正確的。 –

1

AWK方法:

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

  • --output=source--output[=FIELD_LIST]) - 使用所定義的輸出格式由FIELD_LIST

  • -F'/' - 治療/如字段分隔

  • $NF - 最後一個字段的值