Text-Processing如何使用
如何使用 find
查找文件並使用 awk 在文件中搜尋?
在一個文件夾及其子文件夾中,我想搜尋一個模式。為此,我正在使用:
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
?
$ 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