Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在文本文件中找到一个字符串,并用正则表达式将其放入另一个fle中_Regex_Bash_Scripting - Fatal编程技术网

Regex 在文本文件中找到一个字符串,并用正则表达式将其放入另一个fle中

Regex 在文本文件中找到一个字符串,并用正则表达式将其放入另一个fle中,regex,bash,scripting,Regex,Bash,Scripting,我的想法是通过euca描述实例获取虚拟机的ID,并使用bash脚本将其放入文本文件中 euca descripe instances命令的输出为: RESERVATION r-65C341BF 016346531768 my_sec_group INSTANCE i-6FA53F18 emi-4AE43EB9 euca-194- euca-192.euca3.internal running balalala 0m1.medium 2014-02-14T13:2

我的想法是通过euca描述实例获取虚拟机的ID,并使用bash脚本将其放入文本文件中

euca descripe instances
命令的输出为:

RESERVATION r-65C341BF  016346531768    my_sec_group
INSTANCE    i-6FA53F18  emi-4AE43EB9    euca-194-   euca-192.euca3.internal running balalala    0m1.medium  2014-02-14T13:29:04.582Z    wiat-c01                monitoring-disabled 100.100.602.156 191.169.98.86       ebs                 hvm                     
BLOCKDEVICE /dev/sda    vol-ABE63A99    2014-02-14T13:29:04.819Z    true
我想获取实例ID,在本例中是I-6FA53F18。我想用正则表达式实现这一点,到目前为止,代码是,没有输出,没有错误,什么都没有:

euca-describe-instances | grep 'i-[a-zA-Z0-9]{8}' >> instance_state.txt
这假设
实例
位于
i-6FA53F18
之前。。。如果
i-6FA53F18
始终位于第二行和第二列,则可以仅使用
awk

euca-describe-instances | awk 'NR==2 {print $2}' >> instance_state.txt

这并不假定“INSTANCE”是行中的第一个单词(尽管目前在给定的示例中是)。

您不需要
grep
awk

euca-describe-instances | awk '/INSTANCE/{ print $2 }' >> instance_state.txt
euca-describe-instances | grep "INSTANCE" | sed "s/^.*INSTANCE  *\([^ ]*\) .*$/\1/" >> instance_state.txt
euca-describe-instances | awk '/INSTANCE/{ print $2 }' >> instance_state.txt