2011-09-06 65 views
-3

給出:文件:files.txt有:慶典保存價值變量

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

我只是想使用f =薩拉在我的bash skript,因爲我需要在skript後F。所以我tryed:得到ffirst線,第二個參數,刪除。高和保存f中

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

但沒有工作,請幫助我。(

+1

不要誤會我的意思,但你應該在你的英語工作,這真的很難undertand你說過。至少嘗試一下拼寫檢查器 –

+1

'sed 1q file'會比'sed -n 1p file'更有效率,因爲它會在第一行後退出,而後者必須讀取整個文件。 –

回答

3

你只需要反引號:

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

謝謝,但我在f的洞命令,而不是地圖字符串(這裏)薩拉?? – Hans

+0

對不起,我不明白你的評論。你可以嘗試重新措辭嗎? – beny23

1

我會做

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

哦,和第二個參數:

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

,如果你想使用一個命令的輸出來設置一個變量,是完全在bash :-)

+0

太好了,非常感謝! – Hans

1

使用Command Substitution。格式爲v=$(command)。您還可以使用反引號,例如v=`command`,但這已被$(...)表格取代。

你的命令是:

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

打印

sara 
0

你的意思呢?

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

與輸出:

sara 
0

您可以使用awk以及

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