如何搜索文件的字符串开头并保存变量

如何搜索文件的字符串开头并保存变量

我正在尝试找到一种在文件中搜索字符串的方法,它需要通过搜索然后文件来工作,如果文件中的任何行以我正在搜索的内容开头,则将整行保存为变量,以便我可以稍后使用它来启动另一个命令。

我已经在 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.txtstring查找文件行开头的字符串file.txt

  • 数组lines包含匹配的行,IFS=$'\n'使每行成为数组元素

现在您可以使用常规数组操作迭代结果。

例如,要查找找到的行数:

${#lines[@]}

第一个元素:

${lines[0]}

第二个元素:

${lines[1]}

使用循环迭代元素for

for i in "{lines[@]}"; do ....; done

相关内容