Grep: 텍스트 파일에서 가능한 모든 단어 찾기

Grep: 텍스트 파일에서 가능한 모든 단어 찾기

많은 텍스트 파일이 포함된 디렉터리가 있습니다.

이 파일에서 나는 "abcdefghi"라는 단어에 관심이 있습니다. 이 단어의 가능한 모든 상황을 나열해야 합니다.

  • abcdefghi
  • abcdefghI
  • abcDefghi
  • ABCDEFGHI

그리고 다른 모든 가능한 조합.

grep또는 을 사용할 수 있나요 egrep?

나는 grep과 inverse grep을 조합하여 고유한 쉘 스크립트를 작성하고 출력을 얻을 수 있다는 것을 알고 있지만 이식 가능한 솔루션을 찾고 있습니다.

답변1

GNU를 사용하여 grep다음을 시도해 보세요.

grep -io -- 'abcdefghi' *.txt

특정 텍스트를 검색하려는 모든 파일은 다음으로 끝날 것이라고 가정합니다 .txt(숨겨진 파일은 원하지 않습니다).

GNU 구현은 man grep시스템 grep(Linux 기반 시스템에서 일반적임)에서 제공됩니다.

-o, --only-matching       show only the part of a line matching PATTERN
-i, --ignore-case         ignore case distinctions

답변2

Bash 스크립팅의 초보자로서 나는 이것을 찾고 있었고 위에서 허용된 답변을 기반으로 "라는 이름의 다음 Nautilus 스크립트를 작성했습니다.카탈로그에서 텍스트 검색...".이게 가끔 나한테도 통하니까 다른 사람한테도 통할 수도 있겠다는 생각이 들었어요.

#!/bin/bash
# Nautilus Script to search text in selected folder
# Determine the path
if [ -e -n $1 ]; then
    obj="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
else
    base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"
    obj="$base/${1##*/}"
fi
# Determine the type and go
if [ -f "$obj" ]; then
    /usr/bin/canberra-gtk-play --id="dialog-error" &
    zenity --error --title="Search Directory" --text "Sorry, selected item is not a folder."
elif [ -d "$obj" ]; then
    cd "$obj"
# Get text to search
    SearchText=$(zenity --entry --title="Search Directory" --text="For Text:" --width=250)
    if [ -z "$SearchText" ]; then
        notify-send "Search Directory" "Nothing entered; exiting..." -i gtk-dialog-info -t 500 -u normal &
        exit
    else
        if [ -f "/tmp/Search-Directory-Results.txt" ]; then
            rm "/tmp/Search-Directory-Results.txt"
        fi
        grep_menu()
        {
        im="zenity --list --radiolist --title=\"Search Directory\" --text=\"Please select one of the search options below:\""
        im=$im" --column=\"☉\" --column \"Option\" --column \"Description\" "
        im=$im"TRUE \"case-sensitive\" \"Match only: Text\" "
        im=$im"FALSE \"case-insensitive\" \"Match: TEXT, text, Text...\" "
        }
        grep_option()
        {
        choice=`echo $im | sh -`
        if echo $choice | grep -iE "case-sensitive|case-insensitive" > /dev/null
        then
            if echo $choice | grep "case-sensitive" > /dev/null
            then
                grep -- "$SearchText" *.* > "/tmp/Search-Directory-Results.txt"
            fi
            if echo $choice | grep "case-insensitive" > /dev/null
            then
                grep -i -- "$SearchText" *.* > "/tmp/Search-Directory-Results.txt"
            fi
        fi
        }
        grep_menu
        grep_option
    fi
    zenity  --class=LIST --text-info \
            --editable \
            --title="Search Directory" \
            --filename="/tmp/Search-Directory-Results.txt"
fi
exit 0

관련 정보