Bash сохранить значения в переменной - PullRequest
0 голосов
/ 06 сентября 2011

дано: file: files.txt с:

sara.gap sara.gao
pe.gap pe.gao

Я просто хочу использовать f = sara в моем скрипте bash, потому что мне нужно f позже в скриптепоэтому я попытался: получить первую строку, второй аргумент, удалить .gao и сохранить в f

f=sed -ne '1p' files.txt |cut -d " " -f2 |sed 's/.gao//g' 

Но не сработало, пожалуйста, помогите мне; (

Ответы [ 5 ]

3 голосов
/ 06 сентября 2011

Вам просто нужны обратные пометки:

f=`head -1 files.txt | cut -d " " -f2 | sed 's/.gao//g'`
1 голос
/ 06 сентября 2011

Используйте Подстановка команд , если вы хотите использовать вывод команды для установки переменной. Формат v=$(command). Вы также можете использовать обратные ссылки, например, v=`command`, но это было заменено формой $(...).

Ваша команда будет:

f=$(sed -ne '1p' files.txt |cut -d " " -f2 |sed 's/.gao//g')
echo $f

печать

sara
1 голос
/ 06 сентября 2011

Я бы сделал

read f junk < files.txt
f=${f%*.gap}

о, и для второго аргумента:

read junk f junk < files.txt
f=${f%*.gao}

Это полностью в bash: -)

0 голосов
/ 06 сентября 2011

Вы также можете использовать awk

f=$(awk 'NR==1{gsub(/\.gao/,"",$2);print $2;exit}' file)
0 голосов
/ 06 сентября 2011

Вы имеете в виду это?

f="sed -ne '1p' files.txt |cut -d ' ' -f2 |sed 's/.gao//g'"
eval "$f"

с выводом:

sara
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...