Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 14/08/2022, à 17:24

Watael

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

une solution en bash :

#!/bin/bash

ficIn='livres.txt'
ficOut='fichier.out'
chemIn='/quelque/part'
chemOut='/aill/eurs'

## NE RIEN MODIFIER EN-DESSOUS ######

ficIn="$chemIn/$ficIn"
ficOut="$chemOut/$ficOut"
declare -i nbLivres

test -r "$ficIn" || { >&2 echo "le fichier \"$ficIn\" n'est pas accessible en lecture, ou n'existe pas."; exit 1;}
test -n "${cateUser:=$1}" || { >&2 echo "il faut indiquer une catégorie."; exit 2;}

while IFS=':' read nom prenom titre annee categ
do
    if test "$cateUser" = "$categ"
    then
        concatLine[1]="${concatLine[1]:+"$concatLine1,"}$nom ($prenom) [$titre]"
        concatLine[2]="${concatLine[2]:+"$concatLine2"$'\n'}$nom - $titre"
        nbLivres+=1
    fi
done < "$ficIn"

((nbLivres)) && printf '%s\n%s\n%Nb livres: d\n' "${concatLine[1]}" "${concatLine[2]}" $nbLivres >"$ficOut"

KISS!

Dernière modification par Watael (Le 14/08/2022, à 18:27)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#27 Le 14/08/2022, à 18:24

MicP

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

Bonjour

Juste un petit i à mettre en majuscule dans :

ficIn="$chemin/$ficIn"

ce qui donnerait :

ficIn="$chemIn/$ficIn"

Dernière modification par MicP (Le 14/08/2022, à 18:31)

Hors ligne

#28 Le 14/08/2022, à 18:27

Watael

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

corrigé. merci.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#29 Le 14/08/2022, à 18:32

MicP

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

Il y a aussi :

        nbLivres+=1

à remplacer par :

        ((nbLivres+=1))

EDIT : Ce n'était pas necessaire, voir les deux messages suivants.

Dernière modification par MicP (Le 15/08/2022, à 22:58)

Hors ligne

#30 Le 14/08/2022, à 18:42

Watael

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

nbLivres a été déclaré en tant que nombre. big_smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#31 Le 14/08/2022, à 19:01

MicP

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

Cool, smile

Merci, je n'avais pas fait attention à cette importante déclaration :

declare -i nbLivres

=======
Voir :

man --pager='less -p "declare \["' bash

Dernière modification par MicP (Le 14/08/2022, à 19:07)

Hors ligne

#32 Le 15/08/2022, à 21:52

LeoMajor

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

variante Tri Typé (string, integer, float, date, time, ...)

~$ cat ~/livres.csv 
id:author:title:category:qty:price:delivery:schedule
22:Enid Mary Blyton:Oui-Oui et la Carte au trésor:ENFANTS:12:3.56:15/12/2022:"5:24"
13:Zitrou:Ducobu plouf:BD:113:8.56:15/12/2022:"12:30"
0:Enid Mary Blyton:Oui-Oui et Madame Ouistiti:ENFANTS:6:4.57:27/07/2022:"01:00"
1:Hubert Reeves:Poussières d'étoiles:ROMANS:12:23.45:01/02/2023:"4:56"
5:Enid Mary Blyton:Oui-Oui et la Poudre magique:ENFANTS:6:10.40:03/12/2022:"5:24"
10:Hubert Reeves:Patience dans l'azur:ROMANS:5:23.42:15/12/2022:"2:23"
7:Hergé:Le Temple du Soleil:BD:4:36.99:01/12/2022:"5:01"
30:Jean d'Ormesson:Un amour pour rien:ROMANS:10:22.32:04/02/2023:"3:02"
26:Edmond Rostand:Cyrano de Bergerac:X:0:15.52:28/10/2021:"0:00"
4:Hergé:Le Temple du Soleil:BD:1:10.40:01/11/2022:"6:00"
11:Enid Mary Blyton:Oui-Oui et la Gomme magique:ENFANTS:100:-1.05:24/12/2022:"4:23"
8:Roba:Boule et Bill tome7:BD:12:23.45:15/12/2022:"1:23"
2:Enid Mary Blyton:Oui-Oui et Noël:ENFANTS:100:-1.04:24/12/2022:"8:56"
22:Roba:Boule et Bill tome2:BD:5:11.78:15/12/2022:"7:23"
3:Hergé:Tintin au Tibet:BD:1:11.95:01/08/2022:"5:58"
22:Brunhoff:Babar et ce coquin:ENFANTS:5:5.56:15/12/2022:"4:10"
25:Jean d'Ormesson:Odeur du Temps:ROMANS:10:20:01/12/2022:"22:00"
12:Brunhoff:Babar à New York:ENFANTS:6:5.56:01/12/2022:"22:02"
42:André Franquin:Gaston Album20:BD:10:12.90:01/12/2022:"01:14"
14:Brunhoff:Babar et Noël:ENFANTS:100:-0.50:24/12/2022:"03:24"
15:Roba:Boule et Bill gold:BD:1:40.23:15/12/2022:"04:10"
16:Enid Mary Blyton:Oui-Oui et la voiture:ENFANTS:6:9.40:30/12/2021:"5:45"
20:Bernard Clavel:La Maison des autres:ROMANS:5:20.15:15/12/2022:"14:14"
9:Jean d'Ormesson:La Conversation:ROMANS:10:32.15:15/12/2022:"13:00"
21:Roba:Boule et Bill tome9:BD:5:20.45:15/12/2022:"8:10"
34:André Franquin:Gaston Album10:BD:6:11.90:15/12/2022:"9:08"
32:André Franquin:Gaston Album15:BD:10:11.90:15/12/2022:"06:45"
:~$ cat sortcollection.gbs
#!/usr/bin/env gbs3 
Use "gb.util"

Public Struct AVar
  ColumnKey As String
  Order As Integer 
  A As Array
  AT As Integer 'type Array
End Struct

Public Struct Order 
  Elem[4] As Struct AVar
End Struct

Private SK As New Order 'Sort Order by ColumnKey

Public Sub Main()

Dim t As Collection[]
System.Language = "fr_FR.utf8"  'useful for date[]

With SK.Elem[0]
  .ColumnKey = "category"
  .AT = 9
  .Order = gb.Descent
End With

With SK.Elem[1]
  .ColumnKey = "author"
  .AT = 9
End With

With SK.Elem[2]
  .ColumnKey = "qty"
  .AT = 4
  .Order = gb.Descent
End With

With SK.Elem[3]
  .ColumnKey = "delivery"
  .AT = 8
End With

t = SortByType(3, user.home &/ "livres.csv")  ' 0->3
CheckHorizontal(t)
'Check(t)
SaveCsv("/tmp/foo.csv", t)
End

Public Function Csv2Ac(FileCsv As String) As Collection[] 
  Dim t As New Collection[], c As CsvFile
  c = New CsvFile(FileCsv, ":")
  'ok c = CsvFile.Open(FileCsv, ",")
  While Not c.Eof
  t.Add(c.Read())
  Wend
  Return t  
End

Public Function SaveCsv(FileCsv As String, tb As Collection[])

  Dim g As Collection
  Dim c As CsvFile
  c = CsvFile.Create(FileCsv, ",")
  g = tb[0]
  c.Fields = g.keys
  For i As Integer = 0 To tb.Max
    g = tb[i]
    c.Write(g)
  Next
  c.Close()
  print "SaveCsv " & FileCsv	  
End

Private Sub InitA(k As Integer, table As Collection[])
'Initialize & populate SK, k is skIndex
Dim tmp As Object, g As Collection
If k > 3 Then Error.Raise("InitA: 0,1,2,3 only")  
If Not SK.Elem[k].AT Then Error.Raise("InitA: DataType ??") 
'Dim k As Integer = 0
 
 Select Case SK.Elem[k].AT
 Case 1
  tmp = New Boolean[]  
  Print "DIM 1" 
 Case 4
   tmp = New Integer[]
   Print "DIM 4"
 Case 9
   tmp = New String[]
   Print "DIM 9"
 Case 7
   tmp = New Float[]
   Print "DIM 7"
 Case 8
   tmp = New Date[]
   Print "DIM 8"
   ' TypeDate= date,date+time,time
 Default
   tmp = New String[]
   Print "DIM ELSE"
 End Select

  For i As Integer = 0 To table.max
    g = table[i]
    If g.Exist(SK.Elem[k].ColumnKey) Then
      If SK.Elem[k].AT = 8 Then
        tmp.Add(Val(g[SK.Elem[k].ColumnKey]))
      Else
        tmp.Add(g[SK.Elem[k].ColumnKey])

      Endif
    Endif
  Next
  If Not SK.Elem[k].Order Then SK.Elem[k].Order = gb.Ascent
  SK.Elem[k].A = tmp  
End

Public Function SortByType(Deep As Integer, FileCsv As String) As Collection[]
 If Deep > 3 Then Error.Raise("Sort:Deep:0,1,2,3max")
 Dim table As Collection[], k As Integer = 0, skIndex As Integer = 0 
 table = Csv2Ac(FileCsv)
  
 Repeat
  InitA(skIndex, table)
  If skIndex = 0 Then  
      For i As Integer = 0 To (SK.Elem[k].A.Max - 1)
        For j As Integer = i + 1 To SK.Elem[k].A.Max
          If SK.Elem[k].Order = gb.Ascent Then 
            If SK.Elem[k].A[i] > SK.Elem[k].A[j] Then
              Print "0++\t\tswap", SK.Elem[k].A[i], SK.Elem[k].A[j]
              Swap SK.Elem[k].A[i], SK.Elem[k].A[j]
              Swap table[i], table[j]
            Endif
          Endif  
          If SK.Elem[k].Order = gb.Descent Then 
            If SK.Elem[k].A[i] < SK.Elem[k].A[j] Then
              Print "0--\t\tswap", SK.Elem[k].A[i], SK.Elem[k].A[j]
              Swap SK.Elem[k].A[i], SK.Elem[k].A[j]
              Swap table[i], table[j]
            Endif        
          Endif  
        Next
      Next
  Endif 
  
  If skIndex = 1 Then 
      For i As Integer = 0 To (SK.Elem[k].A.Max - 1)
        For j As Integer = i + 1 To SK.Elem[k].A.Max
     
         If SK.Elem[k].A[i] = SK.Elem[k].A[j] Then
           Debug "====", SK.Elem[k].A[i], SK.Elem[k].A[j]
             If SK.Elem[k + 1].Order = gb.Ascent Then 
               If SK.Elem[k + 1].A[i] > SK.Elem[k + 1].A[j] Then
                 Print "1++\t\tswap", SK.Elem[k + 1].A[i], SK.Elem[k + 1].A[j]
                 Swap SK.Elem[k + 1].A[i], SK.Elem[k + 1].A[j]
                 Swap table[i], table[j]
               Endif
             Endif
             If SK.Elem[k + 1].Order = gb.Descent Then 
               If SK.Elem[k + 1].A[i] < SK.Elem[k + 1].A[j] Then
                 Print "1--\t\tswap", SK.Elem[k + 1].A[i], SK.Elem[k + 1].A[j]
                 Swap SK.Elem[k + 1].A[i], SK.Elem[k + 1].A[j]
                 Swap table[i], table[j]
               Endif
             Endif 
          Endif
        Next
      Next
  Endif
   
  If skIndex = 2 Then 
      For i As Integer = 0 To (SK.Elem[k].A.Max - 1)
        For j As Integer = i + 1 To SK.Elem[k].A.Max
     
         If (SK.Elem[k].A[i] = SK.Elem[k].A[j]) And (SK.Elem[k + 1].A[i] = SK.Elem[k + 1].A[j]) Then
           Debug "====", SK.Elem[k].A[i], SK.Elem[k].A[j], SK.Elem[k + 1].A[i], SK.Elem[k + 1].A[j]
             If SK.Elem[k + 2].Order = gb.Ascent Then
               If SK.Elem[k + 2].A[i] > SK.Elem[k + 2].A[j] Then
                 Print "2++\t\tswap", SK.Elem[k + 2].A[i], SK.Elem[k + 2].A[j]
                 Swap SK.Elem[k + 2].A[i], SK.Elem[k + 2].A[j]
                 Swap table[i], table[j]
               Endif
             Endif
             If SK.Elem[k + 2].Order = gb.Descent Then
               If SK.Elem[k + 2].A[i] < SK.Elem[k + 2].A[j] Then
                 Print "2--\t\tswap", SK.Elem[k + 2].A[i], SK.Elem[k + 2].A[j]
                 Swap SK.Elem[k + 2].A[i], SK.Elem[k + 2].A[j]
                 Swap table[i], table[j]
               Endif
             Endif       
          Endif
        Next
      Next
  Endif
    
  If skIndex = 3 Then 
      For i As Integer = 0 To (SK.Elem[k].A.Max - 1)
       For j As Integer = i + 1 To SK.Elem[k].A.Max
    
        If (SK.Elem[k].A[i] = SK.Elem[k].A[j]) And (SK.Elem[k + 1].A[i] = SK.Elem[k + 1].A[j]) And (SK.Elem[k + 2].A[i] = SK.Elem[k + 2].A[j]) Then
          Debug "====", SK.Elem[k].A[i], SK.Elem[k].A[j], SK.Elem[k + 1].A[i], SK.Elem[k + 1].A[j], SK.Elem[k + 2].A[i], SK.Elem[k + 2].A[j]
            If SK.Elem[k + 3].Order = gb.Ascent Then
              If SK.Elem[k + 3].A[i] > SK.Elem[k + 3].A[j] Then
                Print "3++\t\tswap", SK.Elem[k + 3].A[i], SK.Elem[k + 3].A[j]
                Swap SK.Elem[k + 3].A[i], SK.Elem[k + 3].A[j]
                Swap table[i], table[j]
              Endif
            Endif
            If SK.Elem[k + 3].Order = gb.Descent Then
              If SK.Elem[k + 3].A[i] < SK.Elem[k + 3].A[j] Then
                Print "3--\t\tswap", SK.Elem[k + 3].A[i], SK.Elem[k + 3].A[j]
                Swap SK.Elem[k + 3].A[i], SK.Elem[k + 3].A[j]
                Swap table[i], table[j]
              Endif
            Endif       
         Endif
       Next
      Next    
  Endif
  If skIndex = Deep Then Return table 
  Inc skIndex  
 Until skIndex > Deep 
End

Public Sub Check(t As Collection[])
Print "\ncheck\n"
For i As Integer = 0 To t.max
   For Each item As Variant In t[i]
      Print t[i].key, ":", item
    Next
    Print
Next
End
Public Sub CheckHorizontal(t As Collection[])
Print "\ncheck\n"
For i As Integer = 0 To t.max
   For Each item As Variant In t[i]
      Print item & " | ";;
    Next
    Print
Next
End

exemple: Tri par catégorie (décroissant), auteur(croissant), quantité(décroissant), date de livraison(croissant)

:~$ gbs3  ~/sortcollection.gbs
DIM 9
0--		swap	ENFANTS	ROMANS
0--		swap	ROMANS	X
0--		swap	BD	ENFANTS
0--		swap	ENFANTS	ROMANS
0--		swap	BD	ENFANTS
0--		swap	ENFANTS	ROMANS
0--		swap	BD	ENFANTS
0--		swap	ENFANTS	ROMANS
0--		swap	BD	ENFANTS
0--		swap	ENFANTS	ROMANS
0--		swap	BD	ENFANTS
0--		swap	ENFANTS	ROMANS
0--		swap	BD	ENFANTS
0--		swap	ENFANTS	ROMANS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
0--		swap	BD	ENFANTS
DIM 9
1++		swap	Hubert Reeves	Bernard Clavel
1++		swap	Jean d'Ormesson	Hubert Reeves
1++		swap	Jean d'Ormesson	Hubert Reeves
1++		swap	Enid Mary Blyton	Brunhoff
1++		swap	Enid Mary Blyton	Brunhoff
1++		swap	Enid Mary Blyton	Brunhoff
1++		swap	Zitrou	Roba
1++		swap	Roba	André Franquin
1++		swap	Zitrou	Roba
1++		swap	Roba	Hergé
1++		swap	Hergé	André Franquin
1++		swap	Zitrou	Roba
1++		swap	Roba	Hergé
1++		swap	Hergé	André Franquin
1++		swap	Zitrou	Roba
1++		swap	Roba	Hergé
1++		swap	Zitrou	Roba
1++		swap	Roba	Hergé
1++		swap	Zitrou	Roba
1++		swap	Roba	Hergé
1++		swap	Zitrou	Roba
1++		swap	Zitrou	Roba
1++		swap	Zitrou	Roba
1++		swap	Zitrou	Roba
DIM 4
2--		swap	5	6
2--		swap	6	100
2--		swap	5	6
2--		swap	6	100
2--		swap	6	100
2--		swap	6	12
2--		swap	6	10
2--		swap	1	4
2--		swap	1	5
2--		swap	5	12
2--		swap	1	5
2--		swap	1	5
DIM 8
3++		swap	04/02/2023 00:00:00	15/12/2022 00:00:00
3++		swap	01/11/2022 00:00:00	01/08/2022 00:00:00

check

26 |  Edmond Rostand |  Cyrano de Bergerac |  X |  0 |  15.52 |  28/10/2021 |  0:00 |  
20 |  Bernard Clavel |  La Maison des autres |  ROMANS |  5 |  20.15 |  15/12/2022 |  14:14 |  
1 |  Hubert Reeves |  Poussières d'étoiles |  ROMANS |  12 |  23.45 |  01/02/2023 |  4:56 |  
10 |  Hubert Reeves |  Patience dans l'azur |  ROMANS |  5 |  23.42 |  15/12/2022 |  2:23 |  
25 |  Jean d'Ormesson |  Odeur du Temps |  ROMANS |  10 |  20 |  01/12/2022 |  22:00 |  
9 |  Jean d'Ormesson |  La Conversation |  ROMANS |  10 |  32.15 |  15/12/2022 |  13:00 |  
30 |  Jean d'Ormesson |  Un amour pour rien |  ROMANS |  10 |  22.32 |  04/02/2023 |  3:02 |  
14 |  Brunhoff |  Babar et Noël |  ENFANTS |  100 |  -0.50 |  24/12/2022 |  03:24 |  
12 |  Brunhoff |  Babar à New York |  ENFANTS |  6 |  5.56 |  01/12/2022 |  22:02 |  
22 |  Brunhoff |  Babar et ce coquin |  ENFANTS |  5 |  5.56 |  15/12/2022 |  4:10 |  
2 |  Enid Mary Blyton |  Oui-Oui et Noël |  ENFANTS |  100 |  -1.04 |  24/12/2022 |  8:56 |  
11 |  Enid Mary Blyton |  Oui-Oui et la Gomme magique |  ENFANTS |  100 |  -1.05 |  24/12/2022 |  4:23 |  
22 |  Enid Mary Blyton |  Oui-Oui et la Carte au trésor |  ENFANTS |  12 |  3.56 |  15/12/2022 |  5:24 |  
16 |  Enid Mary Blyton |  Oui-Oui et la voiture |  ENFANTS |  6 |  9.40 |  30/12/2021 |  5:45 |  
0 |  Enid Mary Blyton |  Oui-Oui et Madame Ouistiti |  ENFANTS |  6 |  4.57 |  27/07/2022 |  01:00 |  
5 |  Enid Mary Blyton |  Oui-Oui et la Poudre magique |  ENFANTS |  6 |  10.40 |  03/12/2022 |  5:24 |  
42 |  André Franquin |  Gaston Album20 |  BD |  10 |  12.90 |  01/12/2022 |  01:14 |  
32 |  André Franquin |  Gaston Album15 |  BD |  10 |  11.90 |  15/12/2022 |  06:45 |  
34 |  André Franquin |  Gaston Album10 |  BD |  6 |  11.90 |  15/12/2022 |  9:08 |  
7 |  Hergé |  Le Temple du Soleil |  BD |  4 |  36.99 |  01/12/2022 |  5:01 |  
3 |  Hergé |  Tintin au Tibet |  BD |  1 |  11.95 |  01/08/2022 |  5:58 |  
4 |  Hergé |  Le Temple du Soleil |  BD |  1 |  10.40 |  01/11/2022 |  6:00 |  
8 |  Roba |  Boule et Bill tome7 |  BD |  12 |  23.45 |  15/12/2022 |  1:23 |  
22 |  Roba |  Boule et Bill tome2 |  BD |  5 |  11.78 |  15/12/2022 |  7:23 |  
21 |  Roba |  Boule et Bill tome9 |  BD |  5 |  20.45 |  15/12/2022 |  8:10 |  
15 |  Roba |  Boule et Bill gold |  BD |  1 |  40.23 |  15/12/2022 |  04:10 |  
13 |  Zitrou |  Ducobu plouf |  BD |  113 |  8.56 |  15/12/2022 |  12:30 |  
SaveCsv /tmp/foo.csv
:~$ cat /tmp/foo.csv
id,author,title,category,qty,price,delivery,schedule
26,"Edmond Rostand","Cyrano de Bergerac",X,0,15.52,28/10/2021,0:00
20,"Bernard Clavel","La Maison des autres",ROMANS,5,20.15,15/12/2022,14:14
1,"Hubert Reeves","Poussières d'étoiles",ROMANS,12,23.45,01/02/2023,4:56
10,"Hubert Reeves","Patience dans l'azur",ROMANS,5,23.42,15/12/2022,2:23
25,"Jean d'Ormesson","Odeur du Temps",ROMANS,10,20,01/12/2022,22:00
9,"Jean d'Ormesson","La Conversation",ROMANS,10,32.15,15/12/2022,13:00
30,"Jean d'Ormesson","Un amour pour rien",ROMANS,10,22.32,04/02/2023,3:02
14,Brunhoff,"Babar et Noël",ENFANTS,100,-0.50,24/12/2022,03:24
12,Brunhoff,"Babar à New York",ENFANTS,6,5.56,01/12/2022,22:02
22,Brunhoff,"Babar et ce coquin",ENFANTS,5,5.56,15/12/2022,4:10
2,"Enid Mary Blyton","Oui-Oui et Noël",ENFANTS,100,-1.04,24/12/2022,8:56
11,"Enid Mary Blyton","Oui-Oui et la Gomme magique",ENFANTS,100,-1.05,24/12/2022,4:23
22,"Enid Mary Blyton","Oui-Oui et la Carte au trésor",ENFANTS,12,3.56,15/12/2022,5:24
16,"Enid Mary Blyton","Oui-Oui et la voiture",ENFANTS,6,9.40,30/12/2021,5:45
0,"Enid Mary Blyton","Oui-Oui et Madame Ouistiti",ENFANTS,6,4.57,27/07/2022,01:00
5,"Enid Mary Blyton","Oui-Oui et la Poudre magique",ENFANTS,6,10.40,03/12/2022,5:24
42,"André Franquin","Gaston Album20",BD,10,12.90,01/12/2022,01:14
32,"André Franquin","Gaston Album15",BD,10,11.90,15/12/2022,06:45
34,"André Franquin","Gaston Album10",BD,6,11.90,15/12/2022,9:08
7,Hergé,"Le Temple du Soleil",BD,4,36.99,01/12/2022,5:01
3,Hergé,"Tintin au Tibet",BD,1,11.95,01/08/2022,5:58
4,Hergé,"Le Temple du Soleil",BD,1,10.40,01/11/2022,6:00
8,Roba,"Boule et Bill tome7",BD,12,23.45,15/12/2022,1:23
22,Roba,"Boule et Bill tome2",BD,5,11.78,15/12/2022,7:23
21,Roba,"Boule et Bill tome9",BD,5,20.45,15/12/2022,8:10
15,Roba,"Boule et Bill gold",BD,1,40.23,15/12/2022,04:10
13,Zitrou,"Ducobu plouf",BD,113,8.56,15/12/2022,12:30

libreoffice

localc  /tmp/foo.csv

Hors ligne

#33 Le 16/08/2022, à 00:03

Watael

Re : en BASH : extraire des lignes d'une catégorie souhaitée (sans awk)

hmmm. `toujours pas en bash. smile
et encore quelques fois plus d'une vingtaine de lignes. lol


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne