2016-06-01 12 views
0

cutコマンドを使用して出力vendor_id : GenuineIntelvendor_id = GenuineIntelに変換するにはどうすればよいですか?文字列出力を変換する(bashスクリプト)

#!/bin/bash 

VENDORID=`cat /proc/cpuinfo | grep 'vendor_id'|cut -d`=`-f 5` 
vendor_id: GenuineIntel 
echo $VENDORID 
+0

単一引用符として利用していない、(サブコマンドを使用)、バッククォートを避けてください。 –

答えて

1

を持つ変数に

tr ':' '=' < /proc/cpuinfo 

割り当てで=に文字:を翻訳:

vendorid=$(grep 'vender_id' /proc/cpuinfo | tr ':' '=') 
printf "%s\n" "$vendorid" 

ネストしやすいので、バックステッチを$(..)に変更しました。また、変数の拡張を二重引用符で囲むことも忘れないでください。$vendorid - >"$vendorid"またはword splittingとなります。

trは、この場合の変更等号のすべてのコロン、例えばになります

% echo "a:b:c" | tr ':' '=' 
a=b=c 
+0

お返事ありがとうございました。出来た。 – user3613649

+0

@ user3613649私は助けることができてうれしいです:-) – andlrc

+0

あなたの答えに投票しました。 – user3613649

0

あなたはtr anslateを使用することができます

vendorid=$(tr ':' '=' < /proc/cpuinfo) 
1
VENDORID=$(sed -n '/vendor_id/{s/:/=/p;q}' /proc/cpuinfo) 
+0

これは良い答えです。 '{s /:/ =/p; q}'が何をしているのかよく分かりますか? – andlrc

関連する問題