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 回答
0

编写一个名为 script.sh 的脚本

    grep $1 servers.txt| cut -f1 -d":"

运行如下:

chmod +x script.sh

./script.sh 模式

例如 ./script.sh 12.345.678.99

于 2013-10-24T15:33:43.040 回答