0

フラットファイルから読み取り、その行に一致する文字列がある場合に行の最初の文字列を出力するスクリプトが必要です。

例えば。

ファイル「servers.txt」には次が含まれます。

Server1:12.345.678.99:servertest99.test.com
Server2:12.345.678.98:servertest98.test.com
Server3:12.345.678.97:servertest97.test.com

コマンド:

# ./script.sh -i 12.345.678.99
# Server1

#./script.sh -h servertest98.test.com
# Server2

私は立ち往生しています...ありがとう!

4

2 に答える 2

2

を使用するawkと、次のように言えます。

awk -F: '$2~/pattern_to_match/{print $1}' filename

たとえば、

awk -F: '$2~/12.345.678.99/{print $1}' inputfile

結果として

Server1

を使用するsedと、次のように言えます。

sed -nr '/pattern/s/(\w+).*/\1/p' inputfile
于 2013-10-24T15:17:47.877 に答える