bash+awk

возникла проблема:

#!/bin/bash

awk '/$1/ {print $1}'
...

т.е при использовании скрипта получается что-то вроде этого:

[$] ./script ABCD
awk '/ABCD/ {print ABCD}' 

а мне нужно чтоб было awk '/ABCD/ {print $1}'

попробуй вот

попробуй вот так:
awk '/$1/ {print \$1}'

не работает (

не работает (

А вот так? awk '/$1/

А вот так?

awk '/$1/ {print \\$1}'
_________________
Вот такие пироги

пробовал уже ,

пробовал уже , тогда ошибка синтаксиса

?

awk '{print($1)}'

Или у меня

Или у меня другой баш и авк или одно из двух, но

#!/bin/bash

awk '/X/ {print $1}'

Работает так:

 
event@localhost ~ $ ./shit.sh 
asdX
asdX

_________________
Вот такие пироги

мне нужно чтоб

мне нужно чтоб awk брал первый аргумент скрипта как фильтр строки , и брал из этой строки первый столбик.
awk '/$1/ {print $1}' но это не работает, во время работы скрипта bash подставляет вместо {print $1} - {print АРГУМЕНТ} ,а мне надо чтоб агрумент был только как фильтр строки awk '/АРГУМЕНТ/ {print $1}'

Я тебе пытался

Я тебе пытался намекнуть, что в моем случае баш вообще ничего не подставляет. Может ты перепутал что-нибудь?

_________________
Вот такие пироги

хз почему так

хз почему так происходит (
я хотел написать скрипт который по имени тел. берет его адрес и кидает файл по bluetooth.
в файле names.txt формат примерно такой:

KoDeR 00:11:22:33:44
AbXDe 00:22:55:44:12

пробовал делать так :

#!/bin/bash
FILE=/home/abcd/names.txt
obexftp -b `awk '/$1/ {print $1}' $FILE` -p $2

но он так не работает ((
Использовать хочется вот так:

./sendblt KoDeR /home/koder/123.txt

Re: хз почему так

KoDeR написал(а):
но он так не работает ((
Использовать хочется вот так:

./sendblt KoDeR /home/koder/123.txt

А вот так:

#!/bin/bash

echo `awk "/$1/ {print(\"$1\" \\$2);}" $2`

пробовал?

это не

это не правильно оно выводит первый агрумент а не первый столбец файла ((

А в чём сложности?

Разве в данном случае значение первого столбца не равно первому аргументу? К тому же неужели нельзя на примере второго столбца доделать и вывод первого (хотя это будет больше ресурсов занимать, ИМХО), скажем так:

#!/bin/bash

echo `awk "/$1/ {print(\\$1 \" \" \\$2);}" $2`

?

Или я чего-то

Или я чего-то недопонял, но имхо так:

#!/bin/bash
FILE=/home/abcd/names.txt
NAME=$1
SENDFILE=$2
MAC=`grep $NAME $FILE | awk '{print $2}'`
obexftp -b $MAC -p $SENDFILE

вызов ./test.sh KoDeR /path/to/file

спасибо теперь

спасибо теперь работает!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".