Linux - 从第二个选项卡获取文本

时间:2012-06-21 06:35:11

标签: linux bash text

假设我们有这样的文件:

  

sometext11 sometext12 sometext13   sometext21 sometext22 sometext23

文本由制表符分隔,我们知道第1列中的某些文字,但希望从第2列获取文字。 我知道我可以排队:

grep 'sometext11' file.txt

如何从第二列获取文字? 也许某些工具有选项-t [column nr]?

4 个答案:

答案 0 :(得分:11)

AWK:

awk '{print $2}' file.txt

切:

cut -f2 file.txt

击:

while read -a A; do echo ${A[1]}; done < file.txt

perl的:

perl -lane 'print $F[1]' file.txt

如果您知道正在使用的字符串,则可以使用grep

grep -o 'sometext12' file.txt

答案 1 :(得分:2)

awk '{print $2}' < yourfile

答案 2 :(得分:2)

您可以使用cut命令

cut -f2

答案 3 :(得分:0)

您不需要grep

awk '/sometext11/ {print $2}' file.txt

或者你可以在grep中完成所有操作,如果你的支持Perl兼容正则表达式(PCRE),例如GNU或OS X grep

grep -Po '(?<=sometext11\t).*?(?=\t.*)' file.txt