파일에서 줄 삭제

파일에서 줄 삭제

한 폴더에 8개의 파일이 있습니다. 이러한 파일 중 하나에 2줄이 있으면 해당 파일에서 두 번째 줄을 제거해야 합니다. 파일이 2줄보다 길면 아무 작업도 수행할 필요가 없습니다.

답변1

이 스크립트를 사용해 보세요. 잘 작동합니다.

for file in $(ls *.txt)
do
    LINENUMB=`wc -l $file | cut -f1 -d' '`
    if [[ $LINENUMB == 2 ]]; then
    sed -i '$d' $file
    fi
done

답변2

그리고 :findsed

find -type f -exec sh -c '[[ $(sed -n $= $0) -eq 2 ]]' {} \; -exec sed -i '1!d' {} +

참고: 이는 find디렉토리 구조에 따라 PATH조정 되어야 합니다 -maxdepth.

관련 정보