[英]how to get a particular line from a string array
/server/fmw/idm_111/opatch2019-01-25_08-20-55AM_1.log
/server/fmw/oamwebgate11g/opatch2019-01-25_08-20-57AM_1.log
/server/fmw/ohs_111/opatch2019-01-25_08-20-59AM_1.log
/server/fmw/oracle_common/opatch2019-01-25_08-21-01AM_1.log
上面是shell中字符串数组的内容,要获取具有ohs_111的行
请参阅以下示例:
#! /usr/bin/env bash
array=("hi...." "..foo/.." "..bar/..")
for i in ${array[@]}; do
if [[ "$i" =~ "foo" ]] ; then
echo "$i"
fi
done
输出:
..foo/..
正如如何在Bash中检查字符串是否包含子字符串中所述的 ,例如:
#!/bin/bash
array=("/server/fmw/idm_111/opatch2019-01-25_08-20-55AM_1.log"
"/server/fmw/oamwebgate11g/opatch2019-01-25_08-20-57AM_1.log"
"/server/fmw/ohs_111/opatch2019-01-25_08-20-59AM_1.log"
"/server/fmw/oracle_common/opatch2019-01-25_08-21-01AM_1.log" )
for i in ${!array[*]}
do
if [[ "${array[$i]}" == *"ohs_111"* ]]
then
echo "${array[$i]}"
fi
done
grep-打印与模式匹配的行。
例如:
grep -F ohs_111 file_with_content
grep也可以在脚本中使用:
#! /usr/bin/env bash
array=("/server/fmw/idm_111/opatch2019-01-25_08-20-55AM_1.log"
"/server/fmw/oamwebgate11g/opatch2019-01-25_08-20-57AM_1.log"
"/server/fmw/ohs_111/opatch2019-01-25_08-20-59AM_1.log"
"/server/fmw/oracle_common/opatch2019-01-25_08-21-01AM_1.log")
for line in ${array[@]}; do
grep ohs_111 <<< $line
done
输出:
/server/fmw/ohs_111/opatch2019-01-25_08-20-59AM_1.log
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.