Powiedzmy, że masz następujące wejścia:
$ for i in a b c ; do echo "$i is $i" > $i; done
$ cat a b c
a is a
b is b
c is c
Każdy wie, litery są znacznie lepiej!
perl -i.bak -pe '$_ = uc' a b c
Więc teraz
$ cat a b c
A IS A
B IS B
C IS C
Ale naprawdę chciałbym to może w poleceniu nazywa upcase
, a to jest łatwe do zrobienia!
#! /usr/bin/perl -pi.bak
$_ = uc
Zobacz go w pracy:
$ for i in a b c ; do echo "$i is $i" > $i; done
$ cat a b c
a is a
b is b
c is c
$ ./upcase a b c
$ !cat
cat a b c
A IS A
B IS B
C IS C
Więcej porad z answer to a similar question:
Opcja -e
wprowadza kod Perl do wykonania-które można myśleć jako skrypt na z linii poleceń - upuść go i przyklej kod do ciała. Pozostaw -p
w wierszu shebang (#!
).
Zasadniczo najbezpieczniej jest trzymać się co najwyżej jednej "grupy" opcji w linii półbusza. Jeśli potrzebujesz więcej, zawsze możesz wyrzucić ich odpowiedniki w bloku BEGIN {}
.
Nie zapomnij włączyć bitu wykonania!
chmod +x script-name
Ponieważ nie dają rzeczywistą jedno-liner, który chcesz przekonwertować, musiałem dać szerokie i ogólne odpowiedzi. Jeśli edytujesz pytanie, by było ono dostosowane do tego, co chcesz zrobić, możemy udzielić bardziej przydatnych odpowiedzi.
Czy to znaczy mieć Perl wołać do (Shell) linii poleceń Linuksa, lub powłoka nazwać Perl? – Ether