폴더와 하위 폴더 내에서 패턴을 검색하고 싶습니다. 이를 위해 나는 grep+cut+awk+tr
파이프를 사용하고 있습니다.
printf "I am so wide alper world zorro the end\t\t\talper\n" > alper.txt
printf "zorro alper alper alper skfjsdlkfj dslfj dslkj dslfkj sldk\n" > doo.tex
mkdir .git && printf "zorro zoo\n" > .git/test_file.tex
grep -Hrn -e "zorro" --exclude-dir='.git' --color=always -I -F . | \
cut -c 11- | awk '$0="\033[33;35m"$0' | tr -s '[:space:]' | ifne less -r
alper.txt:1:I am so wide alper world zorro the end alper
doo.tex:1:zorro alper alper alper skfjsdlkfj dslfj dslkj dslfkj sldk
여기에서 검색된 패턴( zorro
)은 굵은 빨간색으로 표시됩니다. 다음 순서로 표시됩니다.
<filename>:<line_number>:<matching line>
파일을 찾고 awk를 사용하여 파일 내에서 검색하려면 어떻게 해야 합니까 find
?
답변1
$ find . \( -name .git -prune \) -o \( -type f -exec \
awk -v OFS=':' '
FNR == 1 { fname=FILENAME; sub(/^\.\//,"",fname) }
/zorro/ { gsub(/ +/," "); gsub(/\t+/,"\t"); print "\033[33;35m" fname, FNR, $0 "\033[0m" }
' {} + \)
alper.txt:1:I am so wide alper world zorro the end alper
doo.tex:1:zorro alper alper alper skfjsdlkfj dslfj dslkj dslfkj sldk