Question

J'ai utilisé SED pour un ptovess par lots où je ne pouvais pas le faire avec awk. Vould awk l'a fait? Ou est-ce plus une question de choix et appelle AWK et SED équivalent pour l'utilisation. Ils font tous les deux la recherche commune remplacer similaire par des E / S. Y a-t-il un bon exemple ce qui ne peut pas être fait avec l'un que l'autre peut?

Était-ce utile?

La solution

Une différence principale est qu'un programme AWK peut maintenir l'état et peut fonctionner à l'aide de plusieurs passes sur les mêmes données. Une invocation SED est nécessairement un seul passage simple car SED (éditeur de flux) est intrinsèquement orientée vers le flux. L'avantage, cependant, est que cela rend SED plus simple et plus approprié pour l'utilisation dans les chaînes de tuyaux.

Autres conseils

Dans le livre original (et toujours le meilleur), Le langage de programmation awk, les éléments suivants sont mis en œuvre (entre autres choses):

  • Un assembleur simple
  • compilateur de descente récursif
  • un programme d'indexation de texte

Essayez de faire ça avec SED.

G'day,

Awk est plus puissant. SED a tendance à être plus limité dans ce qu'il peut faire.

SED est bon pour les modifications en ligne des données. Il a quelques constructions de bouclage simples, les choses habituelles ED / EX / VI regexp et les choses de substitution, les déclarations composées, les décisions, etc. La plupart des gens l'utilisent pour modifier les données tuyaux.

AWK est bon pour le filtrage ou le réarrangement des données. Il est principalement utilisé pour les rapports.

Je suggérerais de jeter un œil à l'excellent livre de Dale Dougherty "Sed & Awk" (lien Amazon désinfecté). BTW, il y a également l'une des meilleures explications de Regexps.

Beaucoup de gens diraient utiliser Perl de toute façon! (-:

Éditer: J'ai oublié de dire que le langage awk est tout à fait C comme ce qui n'est pas surprenant étant donné que le «K» dans Awk représente Brian Kernighan. Oui. Ce Brian Kernighan!

De plus, SED ne fonctionne que sur les flux de données tandis que AWK fonctionne sur les flux de données et les fichiers.

Hth

Cheers, SED ne fonctionne que sur les flux de données tandis que AWK fonctionne sur les flux de données et les fichiers.

La seule chose à laquelle je peux penser, c'est que SED peut faire peu de changements dans moins de char à compter l'awk. Donc, pour des ajustements rapides sur une coque en direct, c'est plus rapide à taper.

SED est un éditeur de flux et n'a donc pas de variables et quelques autres constructions comme AWK. Awk est une langue à part entière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top