>> Delete Reply from No. 36139 article
No. RE: [shell programming] 두문장 비교해서...출력하려는데

등록 2001-11-29 22:35:00 By localhost     조회 2
이름 寒    

		:
: 질문여
: 초보라서 잘모르는데...요...
: 예를 들면
:
: 두개의 a.txt, b.txt 가 있는데요.
: 첫번째에는 This is a car
: 두번째에는 car Car
: 이렇게 있다면 두개를 비교해서
: 같은단어가 있는 car를 찾아서
: 첫번째 문장을 This is a Car로
: 바꿔 출력하려는 스크립트를 만들려는데 안되네요.
: 문장의 단어들은 read를 써서 변수로 읽어들였는데요
: 그리고 if then을 써서 비교는 했는데
: 바꿔지지가 않네여...
: 어떤걸 써야하는지 아시는분좀 좀 도와주세요
제가 생각하기에 a.txt에는 원문파일이 b.txt에는 바꿀문자열이들어 있다고
생각하고 다음과 같이 허접한 스크립트를 만들어 보았습니다.
------------------------- cut here ------------------------
#!/bin/sh
 if [ $# != 2 ]; then
        echo "usage: $0 [바꿀 문자열 정보파일] [대상파일]"
        exit 0;
fi
 DATA_FILE=$1
TARGET_FILE=$2
 #------------------------------------------------------
# 정보파일 체크
#------------------------------------------------------
if [ ! -f $DATA_FILE ]; then
        echo "${DATA_FILE}이 존재하지 않음.";
        exit 0;
elif [ ! -r $DATA_FILE ]; then
        echo "${DATA_FILE}을 읽을 수 없음";
        if [ -O $DATA_FILE ]; then
                echo "${DATA_FILE}의 퍼미션 변경.";
                chmod 644 ${DATA_FILE};
        else
                exit 0;
        fi
fi
 #-----------------------------------------------------
# 대상파일 체크
#-----------------------------------------------------
if [ ! -f  $TARGET_FILE ]; then
        echo "${TARGET_FILE}이 존재하지 않음.";
        exit 0;
elif [ ! -w $TARGET_FILE ]; then
        echo "${TARGET_FILE}에 쓸수있는 권한이 없음"
        if [ -O $TARGET_FILE ]; then
                echo " ${TARGET_FILE}퍼미션 변경."
                chmod 644 $resultfile
        else
                exit 0;
        fi
fi
 #------------------------------------------------------
# 정보파일 읽기
#------------------------------------------------------
for REGEX in `awk '{ printf("s/%s/%s/g", $1, $2); }' ${DATA_FILE}`
do
        perl -pi -e ${REGEX} ${TARGET_FILE};
done--외로워라 이네몸은 뉘와함께 놀아날고.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved