4

awk コマンドを使用して値を 3 つの部分に分割しようとしています。3に壊れるには助けが必要です。

コンテンツ =1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %

上記のコンテンツを番号付けシステムで 3 行に分けたいと思います。

必要な出力例:

1. 11683 (<server01>: du.size[/,free] : 0.5 % 
2. 21683 (<server02>: du.size[/,free] : 1.5 % 
3. 31683 (<server03>: du.size[/,free] : 3.5 %

次のコマンドで試しました:

echo $content | awk -F"3. " '{ print $2 }' 

そして私は得る

31683 (<server03>: du.size[/,free] : 3.5 %

他の場合も同様ですが、上記のように適切な番号付け形式でサンプル出力を取得できませんでした。

誰でもこれについて私を助けることができますか?

4

6 に答える 6

6

%シンボルは、分割するのに適した候補のようです. 試す:

sed 's/% /%\n/g'

テスト:

echo "1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %" | sed 's/% /%\n/g'

結果:

1. 11683 (<server01>: du.size[/,free] : 0.5 %
2. 21683 (<server02>: du.size[/,free] : 1.5 %
3. 31683 (<server03>: du.size[/,free] : 3.5 %
于 2013-02-13T06:29:41.140 に答える
4

代わりに使用できますsed

sed "s#[^^]\([0-9]\.\) #\n\1 #g"

例:

[~/Desktop]
==> echo "1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %" | sed "s#[^^]\([0-9]
\.\) #\n\1 #g"
1. 11683 (<server01>: du.size[/,free] : 0.5 %
2. 21683 (<server02>: du.size[/,free] : 1.5 %
3. 31683 (<server03>: du.size[/,free] : 3.5 %
于 2013-02-13T06:04:00.410 に答える
3
perl -pe 's/(\d+\.\s)/\n$1/g'

テスト済み:

> echo "1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %" | perl -pe 's/(\d+\.\s)/\n$1/g'

1. 11683 (<server01>: du.size[/,free] : 0.5 % 
2. 21683 (<server02>: du.size[/,free] : 1.5 % 
3. 31683 (<server03>: du.size[/,free] : 3.5 %
于 2013-02-15T06:04:01.193 に答える
1

試す

echo "1. 11683 (<server01>: du.size[/,free] : 0.5 % 2. 21683 (<server02>: du.size[/,free] : 1.5 % 3. 31683 (<server03>: du.size[/,free] : 3.5 %" | awk '{n = split($0,array,"%"); for (i = 0; i < n-1; ++i){gsub("^ ","",array[i+1]);print array[i+1]" %",i}}'
于 2013-02-13T06:12:47.677 に答える
1

データは、要素数が固定されているように見えます。

{
    print $1, $2, $3, $4, $5, $6, $7
    print $8, $9, $10, $11, $12, $13, $14
    print $15, $16, $17, $18, $19, $20, $21
}

印刷以外にデータを処理する必要がある場合に便利です。

于 2013-02-13T12:06:39.023 に答える