#!/bin/bash
#read the text line by line and cut off the extension
while read filenames ; do
dataset=$filenames
nameis=${dataset%.*}
echo "$nameis" >> /infanass/dev/admin/test/parsed.txt
done < /infanass/dev/admin/test/tobeparsed.txt #location where file names w/ extensions are
while read line ; do
grep "^$line$" /infanass/dev/admin/test/parsed.txt >>matches.txt
done < /infanass/dev/admin/test/file1.txt
두 파일 간의 텍스트를 비교하고 일치하면 match.txt로 전송됩니다. match.txt로 전송된 값에는 확장자가 없습니다(이름만 있음). 파일을 보낼 때 모든 파일에 .pdf를 추가하고 싶습니다. Hits match.txt가 누구에게 있습니까? 어떤 아이디어가 있나요?
답변1
마지막 while
루프를 다음으로 변경합니다.
while read line
do
if grep -q "^$line$" /infanass/dev/admin/test/parsed.txt
then
echo "${line}.pdf" >>matches.txt
fi
done < /infanass/dev/admin/test/file1.txt
그런데 파일에 스크립트를 작성하면 루프에서 세미콜론을 사용할 필요가 없습니다. 터미널의 한 줄에 복합 명령을 작성하는 경우에만 필요합니다.