2009-07-31 19 views
1

から抽出テキスト、私はクライアントのMACホスト名を見て1行のbashスクリプトを必要とするような:最初の5桁は、資産のシリアルです 12345-BA-幼稚園-LT.localOS Xを使用して、ホスト名

ハイフンはビジネスユニットコードを部門名から分離し、その後にラップトップを示すために「LT」のようなものを続けます。
「BA幼稚園」

すべてのヘルプははるかに高く評価:

は、私は、ホスト名をエコーとで私を残して出て文字を削除するのsed、awkは、おそらくカットの組み合わせを使用する必要があると思います。これは私がこれまで持っているものです。

echo $HOSTNAME | sed 's/...\(...\)//' | sed 's/.local//' 

答えて

4
echo "12345-BA-PreSchool-LT.local" | cut -d'-' -f2,3 | sed -e 's/-/ /g' 

(未カットが定義されている場合ので、わからないOSX、上)

+0

なぜ '/ Y -//' -e sedのではないか、TRを使うのか? –

+0

優れている、はいカットが定義されていて、ラインが機能しています!ありがとう。 – chop

3

は、私はあなたが行うことができます:)

シンプルなものを維持したいですそれだけでカット:

echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3 
BA-PreSchool 

あなたがTR

を使用することができ、ハイフンを削除する場合
echo 12345-BA-PreSchool-LT.local | cut -d"-" -f2,3 | tr "-" " " 
BA PreSchool 
+0

これも機能します!ありがとう。 – chop

3

どの程度

echo $HOSTNAME | awk 'BEGIN { FS = "-" } ; { print $2, $3 }' 
+0

また、これも私のために働くことを確認します。助けてくれてありがとう。 – chop

0

Awkのは、簡単にあなたの質問を解決することができます。

echo "12345-BA-PreSchool-LT.local" | awk -F'-' '$0=$2" "$3' 
BA PreSchool 
0
bash$ string="12345-BA-PreSchool-LT.local" 
bash$ IFS="-" 
bash$ set -- $string 
bash$ echo $2-$3 
BA-PreSchool 
関連する問題