繁体   English   中英

如何从字符串数组中获取特定行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM