sed script, um die ersten drei Wörter in jeder Zeile zu drucken

7

Ich frage mich, wie kann ich folgendes mit Sed machen: Ich muss nur die ersten drei Wörter in jeder Zeile behalten. Zum Beispiel der folgende Text:

%Vor%

wird umgewandelt in:

%Vor%     
BearCode 14.02.2011, 23:05
quelle

8 Antworten

13

Sie können cut wie folgt verwenden:

%Vor%     
Ed Morton 27.11.2012, 03:33
quelle
16

In awk kannst du sagen:

%Vor%     
lhf 14.02.2011 23:11
quelle
5
%Vor%

Ich lege das "-E" für OS X Kompatibilität hinein. Andere Unix-Systeme können oder können es nicht brauchen.

edit: verdammt - brainfart. benutze das:

%Vor%     
luddite 27.11.2012 02:43
quelle
5

Ich würde awk in dieser Situation vorschlagen:

%Vor%     
SiegeX 14.02.2011 23:13
quelle
2

Nur mit der Shell

%Vor%

Ruby (1.9) +

%Vor%     
kurumi 15.02.2011 02:23
quelle
1

Wenn Sie ein sed-Skript benötigen, können Sie versuchen:

%Vor%

Aber ich denke, es wäre einfacher mit cut:

%Vor%     
Piva 14.02.2011 23:16
quelle
1

Hier ist eine hässliche mit sed :

%Vor%     
thkala 14.02.2011 23:17
quelle
0

Wenn Perl eine Option ist:

perl -lane 'print "$F[0] $F[1] $F[2]"' file
oder
perl -lane 'print join " ", @F[0..2]' file

    
Chris Koknat 02.11.2015 23:47
quelle

Tags und Links