BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanneKontakt

Mehrere Dateien zeilenweise zusammenführen

Mit Hilfe von lam lassen sich die Zeilen von mehreren Dateien zusammenführen. Im folgenden Beispiel werden drei verschiedene Dateien verwendet:

# cat datei1 
1
2
3
4
5
# cat datei2
a
b
c
d
e
# cat datei3
z
y
x
w
v

Nun lassen sich mit lam die jeweiligen Zeilen zusammenführen:

# lam datei1 datei2 datei3
1az
2by
3cx
4dw
5ev

Mit der -S Option kann ein Trennzeichen definiert werden, welches zwischen die Zeilen der verschiedenen Dateien dargestellt wird:

# lam datei1 -S " " datei2 datei3
1 a z
2 b y
3 c x
4 d w
5 e v
# lam datei1 -S "\
" datei2 datei3
1
a
z
2
b
y
3
c
x
4
d
w
5
e
v

Auch lassen sich jeweils zwei Zeilen einer einzelnen Datei zu einer verbinden:

# lam - - < datei1 
12
34
5

Auf FreeBSD ist lam standardmässig im Basissystem vorhanden. Mehr Informationen zu lam findet man in der Manpage lam(1).

Comments (2)  Permalink

Comments

dino @ 13.12.2010 21:37 CEST
Worin ist lam(1) besser/anderst als paste(1), das seit langem Teil der GNU coreutils ist, und namentlich besser zu cut(1) passt?
Beat @ 14.12.2010 11:02 CEST
Hatte über paste(1) auch schon mal was geschrieben:
http://www.chruetertee.ch/blog/archive/2008/08/09/textdateien-zeilenweise-verbinden.html

Im Gegensatz zu paste(1) könnte man bei lam(1) mit der -f Option die Anzahl Zeichen pro Zeile limitieren und entsprechend formatieren:
# cat foo
12345
123
1
# cat bar
abcde
abc
a
# lam -f 3.3 foo -f 2.2 bar
123ab
123ab
  1 a
Welches besser ist kann ich nicht sagen, sind halt zwei Programme die das Gleiche machen.

add a comment

The Trackback URL to this post is:
http://www.chruetertee.ch/blog/plugin=trackback(1854).xml
Trackbacks are moderated.

This blog is gravatar enabled.
Your email adress will never be published.
Comment spam will be deleted!

Name*
E-Mail
For Spammers Only
URL
Comment*
Notify me via E-Mail when new comments are made to this entry
Remember me (needs cookies)