파일에서 문자열을 검색하는 방법을 찾으려고 합니다. 파일을 검색한 다음 파일을 검색하고 파일의 줄이 내가 검색하는 내용으로 시작하면 전체 줄을 다음과 같이 저장해야 합니다. 변수를 사용하여 다른 명령을 실행할 수 있습니다.
나는 이것을 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