我正在尝试找到一种在文件中搜索字符串的方法,它需要通过搜索然后文件来工作,如果文件中的任何行以我正在搜索的内容开头,则将整行保存为变量,以便我可以稍后使用它来启动另一个命令。
我已经在 python 中尝试过了,但我想在 bash 中找到一种方法
def f(inputpara,substringpara):
temp_log=""
for item in inputpara.split("\n"):
if substringpara in item :
temp_log=item.strip()
return temp_log
谢谢我能够让它工作
IFS=$'\n' lines=( $(grep 'string*' textout.txt) )
for i in "{lines[@]}"
do
echo ${lines[@]}
done
答案1
用于grep
查找行开头的字符串和一个数组来保存结果:
IFS=$'\n' lines=( $(grep '^string' file.txt) )
grep '^string' file.txt
string
查找文件行开头的字符串file.txt
数组
lines
包含匹配的行,IFS=$'\n'
使每行成为数组元素
现在您可以使用常规数组操作迭代结果。
例如,要查找找到的行数:
${#lines[@]}
第一个元素:
${lines[0]}
第二个元素:
${lines[1]}
使用循环迭代元素for
:
for i in "{lines[@]}"; do ....; done