🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.programowanie
4 messages
4 total messages Started by Krystian Thu, 18 Sep 2014 08:00
AWK i wykozystanie zmiennych w nim [BASH]
#72707
Author: Krystian
Date: Thu, 18 Sep 2014 08:00
21 lines
1561 bytes
Dzień Dobry,

mam skrypt który odczytuje nr wersu do zmiennej:
WERS_NR=`grep -n "^$LP " $PLIK`

i zmienna ma poprawna wartość,

pytanie jak poprawnie te wartość "wcisnąć do AWK" wg schematu

odczyt konkretnego wersu w pliku txt tutaj 11-tego
awk 'NR >= 11 && NR <= 11' plik.txt
bez zmiennych działa poprawnie jak zamiast tych 11 podmienić na zmienne?

próbowałem wg opisu:
http://cfajohnson.com/shell/cus-faq-2.html#Q24

awk -v a_var="$WERS_NR"  'BEGIN {NR >= a_var && NR <= a_var }' $PLIK

nie mam pojęcie co robię źle, proszę o pomoc

z góry dziękuje Krystian
Re: AWK i wykozystanie zmiennych w nim [BASH]
#72708
Author: Krystian
Date: Thu, 18 Sep 2014 09:28
31 lines
1778 bytes
Krystian wrote:

> Dzień Dobry,
> 
> mam skrypt który odczytuje nr wersu do zmiennej:
> WERS_NR=`grep -n "^$LP " $PLIK`
> 
> i zmienna ma poprawna wartość,
> 
> pytanie jak poprawnie te wartość "wcisnąć do AWK" wg schematu
> 
> odczyt konkretnego wersu w pliku txt tutaj 11-tego
> awk 'NR >= 11 && NR <= 11' plik.txt
> bez zmiennych działa poprawnie jak zamiast tych 11 podmienić na zmienne?
> 
> próbowałem wg opisu:
> http://cfajohnson.com/shell/cus-faq-2.html#Q24
> 
> awk -v a_var="$WERS_NR"  'BEGIN {NR >= a_var && NR <= a_var }' $PLIK
> 
> nie mam pojęcie co robię źle, proszę o pomoc
> 
> z góry dziękuje Krystian

Rozwiązane:

WERS_NR=`grep -n "^$LP " $PLIK | awk -F: '{print $1}'`

echo `awk 'NR >= avar && NR <= avar' avar="$WERS_NR" $PLIK`

zaczyna mi sie roic juz od znaczkow :)
Re: AWK i wykozystanie zmiennych w nim [BASH]
#72709
Author: PawelS cbrbob(at)wbcd(dot)pl
Date: Fri, 19 Sep 2014 20:31
37 lines
2221 bytes
Krystian pisze:
> Krystian wrote:
> 
>> Dzień Dobry,
>>
>> mam skrypt który odczytuje nr wersu do zmiennej:
>> WERS_NR=`grep -n "^$LP " $PLIK`
>>
>> i zmienna ma poprawna wartość,
>>
>> pytanie jak poprawnie te wartość "wcisnąć do AWK" wg schematu
Mógłbyś doprecyzować o którą konkretnie wersję awk pytasz ?
awk czy gawk ? Są różnice i to nie małe.

>> odczyt konkretnego wersu w pliku txt tutaj 11-tego
>> awk 'NR >= 11 && NR <= 11' plik.txt
>> bez zmiennych działa poprawnie jak zamiast tych 11 podmienić na zmienne?
>>
>> próbowałem wg opisu:
>> http://cfajohnson.com/shell/cus-faq-2.html#Q24
>>
>> awk -v a_var="$WERS_NR"  'BEGIN {NR >= a_var && NR <= a_var }' $PLIK
>>
>> nie mam pojęcie co robię źle, proszę o pomoc
>>
>> z góry dziękuje Krystian
> 
> Rozwiązane:
> 
> WERS_NR=`grep -n "^$LP " $PLIK | awk -F: '{print $1}'`
> 
> echo `awk 'NR >= avar && NR <= avar' avar="$WERS_NR" $PLIK`
Można tak, można również to zrobić zgodnie z oczekiwaniem,
czyli tak jak zapytałeś poprzez zmienne bash:
ola=222 awk 'BEGIN{ print("ENVIRON[ola]="ENVIRON["ola"]); exit(0); }{}'
przy czym tutaj istotnie, że zmienna ola musi być poprzedzać awk,
awk uruchomione w nowej linii nie może skorzystać z tej zmiennej.
Re: AWK i wykozystanie zmiennych w nim [BASH]
#72710
Author: AMX
Date: Sat, 20 Sep 2014 20:51
37 lines
1882 bytes
On Thu, 18 Sep 2014 10:00:45 +0200, Krystian <krystia1n1@skrzy1nk1a.pl> wrote:
> Dzień Dobry,
>
> mam skrypt który odczytuje nr wersu do zmiennej:
> WERS_NR=`grep -n "^$LP " $PLIK`
>
> i zmienna ma poprawna wartość,
>
> pytanie jak poprawnie te wartość "wcisnąć do AWK" wg schematu
>
> odczyt konkretnego wersu w pliku txt tutaj 11-tego
> awk 'NR >= 11 && NR <= 11' plik.txt
> bez zmiennych działa poprawnie jak zamiast tych 11 podmienić na zmienne?
>
> próbowałem wg opisu:
> http://cfajohnson.com/shell/cus-faq-2.html#Q24
>
> awk -v a_var="$WERS_NR"  'BEGIN {NR >= a_var && NR <= a_var }' $PLIK
>
> nie mam pojęcie co robię źle, proszę o pomoc

Warunek BEGIN jest spełniony tylko przed wczyaniem pierwszej
linii, akcja (w { ..}) jest dla mnie niezrozumiała.

Czy chodziło Ci o coś takiego:

echo $LN
11

seq 1 15 | awk -v ln=$LN 'NR==ln {print $0}'

   AMX


-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads