인디노트

shell script 에서 앞에서 찾은 lines 에서 특정 문자열을 포함하는 라인을 찾아 그 바로 위에 다른 문자열을 삽입하는 방법 본문

소스 팁/Shell Script

shell script 에서 앞에서 찾은 lines 에서 특정 문자열을 포함하는 라인을 찾아 그 바로 위에 다른 문자열을 삽입하는 방법

인디개발자 2023. 4. 2. 08:27
#!/bin/bash
old_string="찾을문자열"
new_string="삽입할문자열"
for i in "${!lines[@]}"
do
  if [[ "${lines[$i]}" == *"$old_string"* ]]; then
    lines=("${lines[@]:0:$i}" "$new_string" "${lines[@]:$i}")
  fi
done

위 스크립트에서, for 루프를 사용하여 lines 배열의 각 요소를 처리합니다. if 문을 사용하여 $old_string 변수가 포함된 라인인 경우에만 삽입 작업을 수행합니다. lines 배열의 $i 번째 요소 앞과 뒤에 $new_string 변수를 삽입합니다.

예를 들어, 문자열 배열 lines에서 문자열 "hello"가 포함된 라인 바로 위에 "world"를 삽입하고자 하는 경우 다음과 같은 스크립트를 작성할 수 있습니다.

 

#!/bin/bash
old_string="hello"
new_string="world"
for i in "${!lines[@]}"
do
  if [[ "${lines[$i]}" == *"$old_string"* ]]; then
    lines=("${lines[@]:0:$i}" "$new_string" "${lines[@]:$i}")
  fi
done

 

이 스크립트는 lines 배열에서 "hello" 문자열을 포함하는 모든 라인 바로 위에 "world"를 삽입합니다.

반응형
Comments