인디노트

shell script 에서 앞에서 찾은 lines 에서 특정 문자열을 포함하는 라인을 찾아 삭제하는 방법 본문

소스 팁/Shell Script

shell script 에서 앞에서 찾은 lines 에서 특정 문자열을 포함하는 라인을 찾아 삭제하는 방법

인디개발자 2023. 4. 2. 08:37
#!/bin/bash
old_string="삭제할문자열"
for i in "${!lines[@]}"
do
  if [[ "${lines[$i]}" == *"$old_string"* ]]; then
    lines=("${lines[@]:0:$i}" "${lines[@]:$((i+1))}")
  fi
done

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

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

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

이 스크립트는 lines 배열에서 "hello" 문자열을 포함하는 모든 라인을 삭제합니다.

반응형
Comments