Linux

如何在文件中搜尋字元串的開頭並保存變數

  • June 27, 2016

我正在嘗試找到一種在文件中搜尋字元串的方法,它需要通過搜尋然後文件來工作,如果文件中的任何行以我正在搜尋的內容開頭,則取整行並將其保存為變數,以便我可以稍後在啟動另一個命令時使用它。

我已經在 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

用於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

引用自:https://unix.stackexchange.com/questions/292354