# [gelöst] Unterschiedliche Dateianfänge in Order auflisten

## monade

Hi,

ich nehme an es handelt sich um einfaches Problem, aber ich finde auf die Schnelle keine Lösung. Ich hab in einem Verzeichnis eine Menge unterschiedlicher Dateien, etwa so:

a01_blub.dat

a01_bla.dat

a01_foo.dat

a02_blub.dat

a02_bla.dat

b01_foo.dat

b01_bar.dat

b02_blub.dat

Ich will nun folgende Ausgabe:

a01

a02

b01

b02

Ich will also sozusagen die einzigartigen Dateianfänge herausbekommen. Der _ sollte nicht als Trennzeichen verwendet werden, stattdessen ist der Dateianfang definiert über die ersten N Zeichen (im Beispiel N=3). Ich wäre dankbar für ein nettes Konsolenkommando  :Smile: .Last edited by monade on Fri Jul 03, 2009 8:56 pm; edited 2 times in total

----------

## apraxas

```

soeren@localhorst /tmp/foo % ls | sed -e 's/_.\+//' | uniq 

a01

a02

b01

b02

foo

soeren@localhorst /tmp/foo % 

```

*ähem* Wer lesen kann ...

```
soeren@localhorst /tmp/foo % ls | sed -e 's/\(.\{3\}\).\+/\1/' | uniq
```

----------

## think4urs11

etwas kürzer und leichter zu tippen: 

```
ls ???_* | cut -d_ -f1 | uniq
```

----------

## monade

Perfekt, danke! Das uniq-Kommando fehlte mir.

----------

## apraxas

 *Think4UrS11 wrote:*   

> etwas kürzer und leichter zu tippen: 
> 
> ```
> ls ???_* | cut -d_ -f1 | uniq
> ```
> ...

 

dann aber:

```
ls * | cut -b1,2,3 | uniq
```

Zwecks der Sache mit den ersten 3 Zeichen *denks*

----------

## think4urs11

 *apraxas wrote:*   

> dann aber:
> 
> ```
> ls * | cut -b1,2,3 | uniq
> ```
> ...

 

das würde aber auch etwas wie foobar-baz als foo ausgeben, und der '*' ist eigentlich überflüssig  :Wink: 

wenn schon dann etwas wie das, oder? 

```
ls ???_* | cut -b-3 | uniq
```

----------

## monade

Ich hab am Ende 

```
ls -1 | cut -b-3 | uniq
```

verwendet. Danke nochmal.

----------

## apraxas

 *Think4UrS11 wrote:*   

> 
> 
> das würde aber auch etwas wie foobar-baz als foo ausgeben, und der '*' ist eigentlich überflüssig 
> 
> wenn schon dann etwas wie das, oder? 
> ...

 

Stimmt - der * ist wirklich gewaltig überflüssig... - ahja nach dem -b-3 hatte ich eigentlich gesucht und nicht gefunden :/

----------

