我需要一个从平面文件读取的脚本,并在该行上有匹配字符串时输出该行的第一个字符串。
例如。
文件'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
我被困了......谢谢!
答案 0 :(得分: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
答案 1 :(得分:0)
编写一个名为script.sh的脚本
grep $1 servers.txt| cut -f1 -d":"
运行如下:
chmod + x script.sh
./ script.sh pattern
e.g。 ./script.sh 12.345.678.99