tutorial - Verwenden Sie sed, um eine nicht übereinstimmende Groß-/Kleinschreibung zu löschen




ubuntu grep (2)

Wie passe ich eine regex ohne Groß- und Kleinschreibung an und lösche sie gleichzeitig

Ich habe gelesen, dass um Groß- und Kleinschreibung zu vermeiden, verwenden Sie die Flagge "i"

sed -e "/pattern/replace/i" filepath

und löschen d

sed -e "/pattern/d" filepath

Ich habe auch gelesen, dass ich mehrere Flaggen wie 2iw kombinieren könnte

Ich würde gerne wissen, ob sed könnte ich kombinieren i und d Ich habe das folgende versucht, aber es hat nicht funktioniert

sed -e "/pattern/replace/id" filepath > newfilepath

Bei Verwendung von Groß- / Kleinschreibung /I anstelle von /i .

sed -e "/pattern/Id" filepath

Sie können (g) awk auch verwenden.

# print case insensitive
awk 'BEGIN{IGNORECASE=1}/pattern/{print}' file

# replace with case insensitive
awk 'BEGIN{IGNORECASE=1}/pattern/{gsub(/pattern/,"replacement")}1' file

ODER nur mit der Shell (bash)

#!/bin/bash
shopt -s nocasematch
while read -r line
do
    case "$line" in
        *pattern* ) echo $line;
    esac
done <"file"