Jag är en ny Linux-användare. Jag började använda vim eller vi textredigerare. Hur hittar jag alla förekomster av ordet ’eth0’ och ersätter det med ’br0’ på Linux-operativsystem?
Självstudieinformation | |
---|---|
Svårighet | Lätt (rss) |
Rotprivilegier | Nej |
Krav | vim |
Tid | 1m |
Både vi och vim textredigerare tillhandahåller ersättningskommandot. Den används för att hitta / söka och ersätta text. Denna sida förklarar hur man använder ersättningskommandot för att hitta och ersätta text med vim / vi.
VIM Sök och ersätt syntax
VIM Sök och ersätt
Både vi och vim ger kommandot: s för sökning och ersättning. Låt oss se några lättförståeliga exempel.
Exempel
Jag ska använda följande exempeltextfil:
För att hitta varje förekomst av ’eth0’ endast i den aktuella raden och ersätt den med ’br0’, ange (tryck först på Esc-tangenten och skriv):
:s/eth0/br0/g
Nästa försök att hitta och ersätt alla förekomster av ’eth1’ med ’br1’ under vim, skriv in:
:%s/eth1/br1/g
Sök och ersätt alla förekomster av ’eth1’ med ’ br1 ’, men fråga först om bekräftelse på vim, skriv in:
:%s/eth1/br1/gc
För att hitta och ersätta alla förekomster av skiftlägeskänsliga’ eth1 ’med’ br1 ’, enter:
:%s/eth1/br1/gi
Exemplet ovan hittar eth1, ETH1, eTh1, ETh1 och så vidare och ersätts med br1. För att hitta och ersätta alla förekomster av ’eth1’ med ’br1’ för rader från 3 till 7, skriv in:
:3,7s/eth1/br1/g
En snabb demo
Animerad gif 01: Vim Sök och ersätt demo
Ersättningssyntax
På varje rad, ta bort alla förekomster av hela ordet ”Sysadmin”
Ja, vi kan också ta bort ord:
:%s/\//g
Hur kan jag radera den första förekomsten av hela ordet ”method_” och följande tre tecken?
:%s/\.\{3}//
Sök och ersätt nuvarande Endast rad
Hitta bara varje förekomst av ’bin’ i den aktuella raden och ersätt den med ’sbin’ i wrapper.sh:
:%s/bin/sbin/gc
Slutsats
Du lärde dig att hitta och ersätta text med vi eller vim textredigerare med ersättningskommandot% s. Skriv följande kommando inuti vim för att få hjälp om ersättningsämne eller se dokument:
:help :substitute
🐧 Få de senaste självstudierna om Linux, öppen källkod & DevOps via RSS-flöde eller e-postbrev per vecka.
🐧 8 kommentarer hittills … lägg till en ↓
Kategori | Lista över Unix- och Linux-kommandon |
---|---|
Filhantering | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Nätverksverktyg | dig • värd • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processer Ledning | bg • chroot • cron • disown • fg • jobb • killall • kill • pidof • pstree • pwdx • time |
Söker | grep • varför • vilka |
användarinformation | grupper • id • lastcomm • sista • lock / libuser-lock • loggnamn • medlemmar • användare • whoami • vem • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |