Jeg er en ny Linux-bruger. Jeg begyndte at bruge vim eller vi teksteditor. Hvordan finder jeg al forekomst af ordet kaldet ‘eth0’ og erstatter det med ‘br0’ på Linux-operativsystemer?
Vejledningsoplysninger | |
---|---|
Sværhedsgrad | Let (rss) |
Root privilegier | Nej |
Krav | vim |
Tid | 1m |
Både vi og vim teksteditor giver erstatningskommandoen. Det bruges til at finde / søge og erstatte tekst. Denne side forklarer, hvordan man bruger erstatningskommando til at finde og erstatte tekst med vim / vi.
VIM Søg og erstat syntaks
VIM Find og erstat
Både vi og vim giver kommandoen: s til søgning og erstatning. Lad os se nogle letforståelige eksempler.
Eksempler
Jeg vil bruge følgende eksempeltekstfil:
For at finde hver forekomst af ‘eth0’ kun i den aktuelle linje, og erstat den med ‘br0’, indtast (tryk først på Esc-tasten og skriv):
:s/eth0/br0/g
Prøv derefter at finde og erstat alle forekomster af ‘eth1’ med ‘br1’ under vim, indtast:
:%s/eth1/br1/g
Søg og erstat alle forekomster af ‘eth1’ med ‘ br1 ‘, men bed først om bekræftelse på vim, indtast:
:%s/eth1/br1/gc
For at finde og erstatte alle forekomster af store og små bogstaver’ eth1 ‘med’ br1 ‘, indtast:
:%s/eth1/br1/gi
Ovenstående eksempel finder eth1, ETH1, eTh1, ETh1 og så videre og erstattes med br1. For at finde og erstatte alle forekomster af ‘eth1’ med ‘br1’ for linjer fra 3 til 7, skal du indtaste:
:3,7s/eth1/br1/g
En hurtig demo
Animeret gif 01: Vim Find og erstat demo
Erstatningssyntaks
Til slet alle forekomster af hele ordet “Sysadmin”
Ja, vi kan også slette ord:
:%s/\//g
Hvordan kan jeg slette den første forekomst af hele ordet “method_” og de følgende 3 tegn?
:%s/\.\{3}//
Søg og erstat nuværende kun linje
Find kun hver forekomst af ‘bin’ i den aktuelle linje, og erstat den med ‘sbin’ i wrapper.sh:
:%s/bin/sbin/gc
Konklusion
Du lærte at finde og erstatte tekst med vi eller vim teksteditor ved hjælp af% s erstatningskommando. Skriv følgende kommando inde i vim for at få hjælp til erstatningstema eller se dokumenter:
:help :substitute
🐧 Få de seneste tutorials om Linux, Open Source & DevOps via RSS-feed eller ugentligt nyhedsbrev via e-mail.
🐧 8 kommentarer indtil videre … tilføj en ↓
Kategori | Liste over Unix- og Linux-kommandoer |
---|---|
Filhåndtering | kat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Netværksværktøjer | dig • vært • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processer Ledelse | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Søger | grep • hvor er • hvilke |
brugeroplysninger | grupper • id • lastcomm • sidste • låg / libuser-låg • lognavn • medlemmer • brugere • whoami • hvem • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |