bash在变量中保存值

时间:2011-09-06 13:32:11

标签: bash shell

给出:file:files.txt with:

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

我只是想在我的bash skript中使用f = sara,因为我后来需要f。所以我试着:获得第一行,第二个参数,删除.gao并保存在f

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

但是没有用,请帮助我;(

5 个答案:

答案 0 :(得分:3)

你只需要反叛:

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

答案 1 :(得分:1)

我会做

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

哦,第二个论点:

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

那完全是在bash中: - )

答案 2 :(得分:1)

如果要使用命令的输出来设置变量,请使用Command Substitution。格式为v=$(command)。你也可以使用反引号,例如v=`command`,但已被$(...)表单取代。

你的命令是:

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

打印

sara

答案 3 :(得分:0)

你的意思是?

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

带输出:

sara

答案 4 :(得分:0)

您也可以使用awk

f=$(awk 'NR==1{gsub(/\.gao/,"",$2);print $2;exit}' file)