Portál AbcLinuxu, 14. května 2025 00:07

Dotaz: fopen v BASH

16.3.2008 14:36 depka
fopen v BASH
Přečteno: 344×
Odpovědět | Admin
zdravim, muzu nejak v BASHI parsovat soubor po radcich(nebo znacich), ale zaroven mit k dispozici pozici aktualniho radku v souboru?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.3.2008 14:51 Jan Šimák | skóre: 37 | Hradec Králové
Rozbalit Rozbalit vše Re: fopen v BASH
Odpovědět | | Sbalit | Link | Blokovat | Admin
gawk
Pozice aktuální řádku je uložena v proměnné FNR.
hikikomori82 avatar 16.3.2008 16:50 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: fopen v BASH
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/bash
RIADOK=0
cat /etc/fstab | (while read LINE; do
  RIADOK=`echo $RIADOK+1 | bc`
  # spracovanie
  [ $RIADOK == 3 ] && echo "V tretom riadku je $LINE"
done)
Slobodný font na technické kreslenie
16.3.2008 17:15 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: fopen v BASH
Mno, volat na pricteni jednicky bc je celkem overkill, ze. Viz.
16.3.2008 17:06 depka
Rozbalit Rozbalit vše Re: fopen v BASH
Odpovědět | | Sbalit | Link | Blokovat | Admin
potrebuji "bajtovou" pozici jako ftell()
16.3.2008 17:19 depka
Rozbalit Rozbalit vše Re: fopen v BASH
tak sem to snad vyresil tim awk
#!/usr/bin/gawk -f
BEGIN {	FS = "\t" }
! /^[:space:]*#/ \
{
	i = tolower(substr($1, 0, 4))
	if (last != i) \
	{
		printf "%s\t%d\n", i, POS
		last = i
	}
}
{ POS += length() + 1 }
zoul avatar 16.3.2008 17:49 zoul | skóre: 43 | blog: | Boskovice
Rozbalit Rozbalit vše Re: fopen v BASH
Na tohle by IMHO bylo mnohem lepší použít něco rozumnějšího, například Perl nebo Python.
16.3.2008 17:58 depka
Rozbalit Rozbalit vše Re: fopen v BASH
kdybych chtel neco "rozumnějšího" tak pouziju rovnou C
16.3.2008 19:06 depka
Rozbalit Rozbalit vše Re: fopen v BASH
a asi budu muset protoze to nefunguje spravne
awk '{pos += length() + 1 }; END { print pos }' slovnik1
navrati to same jako je velikost souboru

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.