0

I am writing a csh script and need to assign the numerical value in a string to a variable

Here is an example of the string value: "pkt_size=78"

The characters in the string will always be the same except for the number.

I pretty much need to extract the value after the "=" sign.

What Unix command can I use to do this?

Thanks,

4

4 に答える 4

3
% set var = pkt_size=78
% set num = `echo $var | sed 's/.*=//'`
% echo $num
78

または、tcsh(プレーンcshではない)を使用してい、プレフィックスが固定文字列である場合:

% set var = pkt_size=78
% set num = $var:s/pkt_size=//
% echo $num
78

必須の参照

于 2013-03-01T19:35:38.887 に答える
0

クイックハック...

$ NUMBER=`echo pkt_size=78 | sed -e 's/pkt_size=\(\d*\)/\1/'`
于 2013-03-01T19:36:14.597 に答える
0

Cシェルクックブックによると

Cシェルには文字列操作ツールはありません。代わりに、主にechoコマンドとawkユーティリティを使用します。後者にはテキスト処理用の独自の言語があり、通常はファイルから複雑な処理を実行するawkスクリプトを作成できます。Dale Doughertyによる簡潔なタイトルのsed&awk(O'Reilly&Associates、1990)など、awkに捧げられた本もあります。当然のことながら、詳細な説明はこのクックブックの範囲をはるかに超えています。

ハックは次のawkようになります。

set var=`echo "$var" | awk -F= '{print $2}'`
于 2013-03-01T19:59:39.787 に答える
0

cshを使用する必要がある場合は、組み込みの修飾子を使用できます。

% set v=pkt_size=78
% echo $v:s/pkt_size=//
78

これはtcshに固有の場合があります。

しかし、代わりにボーンシェル派生物(sh、ksh、bash)を使用する理由はたくさんあります。

于 2013-03-01T20:09:30.170 に答える