GNU/Linux >> Znalost Linux >  >> Linux

8 úžasných argumentů příkazového řádku v Perlu, které byste měli vědět

Možnosti příkazového řádku v Perlu mohou být užitečné pro efektivní provádění menších úkolů.

V tomto článku se podíváme na to, jak používat možnosti příkazového řádku Perlu k provádění následujících úkolů:

  • Upravit obsah souboru
  • Používejte oddělovač řádků
  • Zkontrolujte chyby syntaxe
  • Načíst moduly
  • Provádět opakování
  • Spustit kód perl
  • Nastavte oddělovač vstupních řádků
  • Rozdělit vstupní řádek
  • atd.

1. Možnost Perl -i:Upravit obsah souboru

Otevírá soubory jeden po druhém a obsah nahradí STDOUT.

Pomocí následujícího souboru sample.txt převedeme jeho obsah na velká písmena, jak je uvedeno níže.

$ cat sample.txt
Practical Extraction Report Language

$ perl -pi  -e “tr/[a-z]/[A-Z]/” sample.txt

$ cat sample.txt
PRACTICAL EXTRACTION REPORT LANGUAGE

Můžete také zálohovat původní soubor, jak je znázorněno níže:

$ perl -pi.bak  -e “tr/[a-z]/[A-Z]/” sample.txt

$ cat sample.txt
PRACTICAL EXTRACTION REPORT LANGUAGE

$ cat sample.txt.bak
Practical Extraction Report Language

Chcete-li ladit program v Perlu, použijte debugger Perl, jak jsme si vysvětlili dříve.

2. Možnost Perl -l:Manipulace s oddělovačem řádků

Oddělovač řádků má jako argument osmičkovou hodnotu. Následuje několik příkladů některých běžných oddělovačů a jejich osmičkové hodnoty.

Character    Octal Value
=========    =========
new line(\n) 012
tab(\t)      011
space        040
&            046

Poznámka:použijte příkaz „man ascii“ ke zjištění osmičkové hodnoty pro všechny znaky.

Příklad použití oddělovače řádků:

$ perl -p -l046 -e “tr/[a-z]/[A-Z]/”;
bala

Output :

BALA&

Další čtení naleznete také v části 6 funkcí Perl eval.

3. Možnost Perl -c:Zkontrolujte chyby syntaxe

Volba -c zkompiluje váš program bez jeho spuštění, aby bylo zajištěno, že ve vašem programu nejsou žádné syntaktické chyby.

$ perl -c sample.pl

4. Možnost Perl -M :Pro načítání modulů

S volbou Perl -M můžeme načíst požadované moduly, jak je ukázáno níže.

$ perl -MFile::Copy -e ‘move(“sample.txt”,”/tmp”);’

Volba -m také načte moduly, ale nic neimportuje. Rozdíl je následující:

  • -MFile::Copy se rovná „use File::Copy; “
  • -mFile::Copy se rovná „use File::Copy()“

O Option -M jsme také hovořili v našich dřívějších 20 Killer Perl Programming Tips.

5. Perl -n a -p Možnost:Implicitní opakování

Volba -n zabalí váš kód do smyčky, jak je znázorněno níže.

while(<>) {
# perl code
}

Následující úryvek to popisuje lépe.

while(<>) {
$_ =~ tr/[a-z]/[A-Z]/;
}

Pomocí -n můžeme přepsat výše uvedený fragment kódu, jak je znázorněno níže.

$ perl -n -e ‘tr/[a-z]/[A-Z]/;print’

Volba -p zabalí váš kód do smyčky, jak je znázorněno níže.

while(<>) {
# perl code
print;
}

Následující úryvek to popisuje lépe.

while(<>) {
$_ =~ tr/[a-z]/[A-Z]/;
print;
}

Pomocí -p můžeme přepsat výše uvedený fragment kódu, jak je znázorněno níže.

$ perl -p -e “tr/[a-z]/[A-Z]/”;

Pokud vyvíjíte hodně kódu v Perlu, měli byste si přečíst knihu doporučených postupů v Perlu.

6. Možnost Perl -e:Spustit kód perl v samotném příkazovém řádku

Jednoduchý nebo krátký program v Perlu lze napsat v samotném příkazovém řádku s touto volbou, jak je uvedeno níže.

$ perl -e “print \”Username : $ENV{USER}”

7. Možnost Perl -0:Zadejte oddělovač záznamů

Pomocí volby -0 můžeme změnit „oddělovač vstupních záznamů“ z nového řádku na něco jiného, ​​jak je uvedeno níže.

$ perl -p -0046 -e “tr/[a-z]/[A-Z]/”;
bala
raja&

Output :

BALA
RAJA&

Ve výše uvedeném příkladu je 046 osmičková hodnota znaku „&“. Poté, co obdrží znak &, jej Perl považuje za konec záznamu a poté provede operaci překladu.

8. Perl -a Možnost:Rozdělit vstupní řádek

Rozdělí $_ na @F s oddělovačem jako mezerou.

Následující příklad ukazuje volbu -a.

$ cat emp_salary.txt
bala     10000
rajesh  12300
kumar 14000

$ perl -n -l012  -a -e ‘print “$F[1]“‘  emp_salary.txt
10000
12300
14000

Ve výchozím nastavení zabírá místo jako oddělovač a provádí operaci rozdělení. Oddělovač lze změnit pomocí volby -F, jak je uvedeno níže.

$ cat emp_salary.txt
bala:10000
rajesh:12300
kumar:14000

$ perl -n -l012  -F: -a -e ‘print “$F[1]“‘  emp_salary
10000
12300
14000

Linux
  1. Předat argumenty příkazového řádku skriptu Bash?

  2. Spouštějte skripty Perl/PHP z příkazového řádku

  3. Nagios:Jak povolit argumenty příkazového řádku check_nrpe

  1. 14 běžných síťových portů, které byste měli znát

  2. 15 příkladů rozšíření historie Linuxu Bash, které byste měli vědět

  3. argumenty příkazového řádku pro spuštění dockeru

  1. 10 příkazů, které by měl znát každý uživatel Linuxu

  2. 10 základních linuxových příkazů, které potřebujete znát

  3. 11 průvodců příkazovým řádkem Linuxu, bez kterých byste neměli být