쉘 스크립트가 있습니다. 쉘 스크립트에서 우리는 file.log
as라는 단어가 파일에 있는지 확인하려고 합니다 MB
. 그렇다면 이를 쉘 스크립트의 변수에 저장하고 v_name
, 단어가 없으면 v_name
비어 있어야 합니다.
노트:유언장 file.log
에는 최대 한 MB
단어가 포함됩니다.
답변1
file.log
문자열이 포함된 경우 변수에 MB
텍스트를 할당합니다 .MB
v_name
grep -q MB file.log && v_name=MB
인용하다:매뉴얼 페이지grep의 경우
답변2
파일에서 단어를 찾는 유닉스 명령은 다음과 같습니다.
grep
$ man grep | grep -A 5 DESCRIPTION
DESCRIPTION
grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus (-) is given as file name) for lines containing a
match to the given PATTERN. By default, grep prints the matching lines.
In addition, three variant programs egrep, fgrep and rgrep are available. egrep is the same as grep -E. fgrep is the same as grep -F. rgrep is the same
as grep -r. Direct invocation as either egrep or fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.
답변3
v_name=$(grep -P "\d+\.\d+ MB")
"92.29MB"와 같은 변수를 지정하십시오.
답변4
#!/bin/bash
# $1 = pattern
# $2 = file name to search in
# did not write or test script to handle wild cards in $2
# -i option in grep is case insensitive, use just -l if you care about case
vname=`grep -li $1 $2`
if [ -z "$vname" ]; then
echo "vname is empty"
else
echo "vname is " $vname
# set vname to pattern searched for
vname=$1
echo "vname is " $vname
fi