디렉터리에서 요소 목록(텍스트 파일의) 항목을 찾으려고 합니다.
다음은 제가 사용하고 있는 코드이지만 명령 출력을 콘솔로 보낼 bash
수 없습니다 .grep
#!/bin/bash
FILENAME=$1
count=0
while read LINE
do
let count++
echo "$count $LINE"
grep -r $LINE /home/user/vaishnavi
done < $FILENAME
echo -e "\nTotal $count Lines read"
산출:
1 ASK
2 TELL
3 ORDER
4 NUMBER
5 SIZE
6 BASKET
7 FRUIT
8 VEGGIES
Total 8 Lines read
요소 목록만 가져오지만 지정된 위치에서 요소가 나타나는 횟수는 가져오지 않습니다.
내 코드에 문제가 있나요?
감사해요.
답변1
내 코드는 다음과 같아야 한다고 생각합니다.
출력이 다음과 같기를 원한다면
Serial_Number Name_Of_Element 개수 파일 이름 1 파일 이름 2
#!/bin/bash
FILENAME=$1
count=0
while read LINE
do
let count++
VAL=$(grep -r $LINE /home/user/vaishnavi | awk -F ':' '{print $1}' | sort -u )
NUM=$(grep -r $LINE /home/user/vaishnavi | wc -l)
echo "$count $LINE $NUM"
echo "$VAL"
done < $FILENAME
echo -e "\nTotal $count Lines read"
답변2
grep -xrHf elementsfile.txt /home/user/vaishnavi | sort | uniq -c
- x: 전체 줄과 일치합니다(ASK는 BASKET과 일치하지 않아야 함).
- r: 폴더를 스캔하세요
- H: 파일 이름 인쇄(파일:일치)
- f: 파일에서 일치시킬 요소를 읽습니다.
이는 파일별로 정렬됩니다. 일치하는 요소별로 정렬하려면 다음을 추가하세요.
| sort -k2 -t: