/ / Wie man einen awk Befehl aliasiert - Linux

Wie man einen awk Befehl aliasiert - Linux

Ich möchte das Folgende in einen einfacheren Ausdruck, etwa aprint, umbenennen.

 awk "{print $1}"

Ich tat

alias aprint "awk "{print $1}""   //But gave error ----> Missing }.

dann gab ich,

alias aprint "awk "{print $1}""
//But gave error ----> awk: "{print , awk: ^ invalid char """ in expression

Ich bin nicht sicher, wie ich das umgehen soll, bitte helfen Sie ...

Antworten:

7 für Antwort № 1

Es gibt einige Probleme mit Ihrem Alias.

Zunächst wird der Name eines Alias ​​durch von seinem Wert getrennt =, kein Leerraum.

Zweitens a " können nicht in andere Anführungszeichen geschachtelt werden, indem sie mit einem .

Dein Alias ​​funktioniert, wenn du so schreibst:

alias aprint="awk "{print $1}""

bei dem die $ wird von einem vorangestellt verhindern $1 von der Schale erweitert werden.


4 für Antwort № 2

Besser als ein alias, erstelle eine Funktion für diese Art von Dingen:

function aprint() { awk "{print $1}"; }

Sie können es zum Beispiel so verwenden:

$ date
Fri Jan  3 08:09:23 CET 2014
$ date | aprint
Fri

Sie möchten es wahrscheinlich auch parametrisieren:

function aprint() { awk "{print $${1:-1}}"; }

Auf diese Weise funktioniert es nicht nur mit der ersten, sondern auch mit jeder anderen Spalte:

$ date | aprint 2
Jan
$ date | aprint 6
2014

Verwenden ${1:-1} Das Argument ist optional und verwendet standardmäßig 1.


2 für Antwort № 3
alias somefunc="function _somefunc { ls -la ${1} |awk """{print $1}"""; }; _somefunc"

Alias ​​macht so viel Spaß. Ich bin mir nicht sicher, warum Sie einen Alias ​​für awk per se einrichten würden, aber wenn Sie ihn in eine Funktion einfügen und die Eingabe tokenisieren.

Normalerweise benutze ich dies, wenn ich einiges tokenisieren möchtegib es aus und leite es an etwas anderes weiter, was in Aliases weitaus nützlicher ist. Dies kann auch mit einem regulären Alias ​​funktionieren. um das Ende des Alias ​​vor dem einzelnen Tick abzugrenzen: z.B. alias other="ls -la |awk """{print $1}""";"


Verwandte Fragen
Bemerkungen
Einen Kommentar hinzufügen