Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: faint в Mar 10, 2006, 20:35



Титла: Bash scripting...
Публикувано от: faint в Mar 10, 2006, 20:35
Здравейте,
хич ме няма в bash scripting-а, затова искам да помоля някой да ми даде примерче за следното нещо, което искам да направя:

Имам файл /etc/file в който съдържа следното:

#/etc/file
a b c d
2a 2b 2c 2d

искам да проверя дали a = а и ако те са равни да изкарам от същия ред втория символ (т.е. b )

дано съм обяснил правилно.. на ПХП би изглеждало така:

<?php
$f=file("/etc/file");
for($i=0;$i<count($file);$i++) {
if(strstr($f,"a")) {
$expl=explode(" ", $f[$i]);
$result=$expl[1];
echo $result;
}
}
?>

Как би изглеждало това в bash script?  :huh:


Титла: Bash scripting...
Публикувано от: sdr в Mar 11, 2006, 00:18
Примерен код

sdr@sdr ~ $ cat tst
a b c d
2a 2b 2c 2d
sdr@sdr ~ $ cat tst | while read line; do  first=`echo $line|cut -f1 -d' '`;second=`echo $line|cut -f2 -d' '`;echo "first:$first second:$second"; done
first:a second:b
first:2a second:2b
sdr@sdr ~ $


Незнам за какво ти е това на bash и дали не може на нещо по-удобно като gawk .... btw не знаех че може да се пайпва по този начин но google knows


Титла: Bash scripting...
Публикувано от: faint в Mar 11, 2006, 00:35
Цитат (sdr @ Март 11 2006,01:18)
Примерен код

sdr@sdr ~ $ cat tst
a b c d
2a 2b 2c 2d
sdr@sdr ~ $ cat tst | while read line; do  first=`echo $line|cut -f1 -d' '`;second=`echo $line|cut -f2 -d' '`;echo "first:$first second:$second"; done
first:a second:b
first:2a second:2b
sdr@sdr ~ $


Незнам за какво ти е това на bash и дали не може на нещо по-удобно като gawk .... btw не знаех че може да се пайпва по този начин но google knows

... а може ли да се направи разграничител.. защото тъй като гледам това е само при интервал прави разграничение на arrays а ако ми е примерно таб ?


Титла: Bash scripting...
Публикувано от: sdr в Mar 11, 2006, 09:35
man cut