【发布时间】:2019-03-22 20:17:51
【问题描述】:
我将输入从先前声明的包含多行的变量传递给 grep。我的目标是只提取某些行。 当我增加 grep 中的参数计数时,可读性会下降。
var1="
_id=1234
_type=document
date_found=988657890
whateverelse=1211121212"
echo "$var1"
_id=1234
_type=document
date_found=988657890
whateverelse=1211121212
grep -e 'file1\|^_id=\|_type\|date_found\|whateverelse' <<< $var1
_id=1234
_type=document
date_found=988657890
whateverelse=1211121212
我的想法是从数组中传递参数,它会增加可读性:
declare -a grep_array=(
"^_id=\|"
"_type\|"
"date_found\|"
"whateverelse"
)
echo ${grep_array[@]}
^_id=\| _type\| date_found\| whateverelse
grep -e '${grep_array[@]}' <<<$var1
---- no results
如何使用 grep 从其他地方而不是一行传递具有多个 OR 条件的参数? 随着我有更多的论点,可读性和可管理性下降。
【问题讨论】:
-
如果行是连续的并且正在使用 GNU grep,请查看
grep --help中的上下文控制以获取 n 行上下文,也许更合适