2013-08-26 137 views
0

Bash腳本工作,我想通過特殊的文字bash腳本操作

例如擺脫大文本行,我有這些行

first fffffffffffffffffffffffffff 
................................. 
second ssssssssssssssssssssssssss 
................................. 
third ttttttttttttttttttttttttttt 

,我想ssssssssssssssssssssssssss字符串。

任何人都可以幫助我嗎?

+0

按照什麼標準選擇輸出?它是第二排第二列嗎?第二行的第一個單詞之後是否有任何內容?別的東西?請澄清 – user000001

+1

描述您想要的一般性問題,如:「我想提取第二列中的第二個字符串。」或者「我想在字符串」second「之後提取第二個字符串」 – Zasz

+0

不是第二行。這是一個簡單的示例 – user2699859

回答

1

這是你想要的嗎?

echo "$longstring" | awk '$1 == "second" { print $2 }' 
+0

不是第二行 – user2699859

+0

如果不是第二行,那麼它是什麼? – Barmar

+1

我的答案不尋找第二行,它尋找以「second」開頭的行。如果這不是找到你想要的字符串的方式,你需要改進問題。 – Barmar

1
cat filename | grep "^second" | cut -d " " -f 2 

或者,如果你是ALF:

<filename grep "^second" | cut -d " " -f 2 

或者

grep "^second" filename | cut -d " " -f 2 
+0

我還沒有文件,我有行 – user2699859

+0

如果行不在文件中,行在哪裏?如果它們在變量中,則使用'echo「$ variable」'而不是'cat filename'。 – Barmar

+1

[無用的'cat'獎勵](http://partmaps.org/era/unix/award.html) –

1

因爲你似乎沒有任何標準,哪個行,你要輸出,我建議是這樣:

echo "ssssssssssssssssssssssssss" 

這是相當強勁有關您輸入的內容,不依賴於「文件」,並且是一個快速解決方案。

+1

或稍微短一些:'printf's%.0s「{1..25}' – user000001

+0

@ user000001,@Birei:我不應該說」最快的解決方案「;我的意思是這比迄今爲止提出的所有grep和awk解決方案都快... –

+0

這個解決方案可能會帶來一些健壯性問題。 – Jiminion