스크립트 셸 파일에서 문자열 찾기


0

다음은 내 파일의 구조입니다.

/**** Some Text here ****/                         
UN  10.147.243.93  51.46 KB   256     34.2%
UN  10.147.243.89  83.05 KB   256     34.6%
DN  10.147.243.88  66.43 KB   256     32.7%            

여기 내 대본이있다.

file=$1
echo $file
if grep -q DN $File; then
   echo "Get the corresponding IP address, It is the treatment that I   
         want to do next"
fi

그러나 파일 이름 만 표시합니다. 제발 좀 생각해 봤어?

그런 다음 해당 IP 주소를 추출합니다. 다음은 몇 가지 세부 사항입니다.

if grep -q DN $File; then
   echo "Get the corresponding IP address Guest, It is the treatment 
   that I want to do next"
   variable=This address


fi 

도와 줘서 고마워.

친애하는.


-f파일 이름을 지정하는 이유는 무엇입니까? 또한 - 사용중인 쉘을 지정하십시오. "스크립트"는 sh, bash, csh 등과 매우 중요한 차이가 있기 때문에 충분하지 않습니다.
mnmnc

if grep -q DN -f $ File; then ---> "grep --help"라고 표시합니다.
연구원

2
오타가 있습니다 : "$ File"대 "$ file"
bertieb

표시 grep --help되는 경우 사용 된 구문이 올바르지 않다는 의미입니다. if대화 형 셸에서 사용한 조건을 이동하고 작동하지 않는 이유를 확인하십시오.
mnmnc

grep -q DN $ file 인 경우 "$ File"을 "$ file"로 변경해야합니다. 다음 메시지를 표시, 정말 고마워. 해당 IP 주소를 추출 할 수 있습니까?
연구원

답변:


2

언급했듯이 $File오타를 수정해야합니다 .

출력 결과에 따라 if테스트 가 전혀 필요하지 않을 수도 있습니다 . 변수에 IP 주소를 저장하고 싶습니다.

file=$1
echo $file
ip=$(grep -e DN $1 | awk '{ print $2; }')
echo $ip

이는 가치가있는 부분에 대해 훨씬 더 단순화 될 수 있지만, 이미 가지고있는 것과 일치합니다.

이는 파일의 'DN'에 해당하는 IP 의 첫 번째 인스턴스 와 만 일치 합니다. 그 행동은 첫 번째 경기에서 즉시 퇴장 하는 -q옵션을 사용함에 의해 암시됩니다 grep.

사건 마다 무언가를하고 싶다면 다른 일을해야 할 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.