2013-08-26 107 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