假设我们有这样的文件:
sometext11 sometext12 sometext13 sometext21 sometext22 sometext23
文本由制表符分隔,我们知道第1列中的某些文字,但希望从第2列获取文字。 我知道我可以排队:
grep 'sometext11' file.txt
如何从第二列获取文字? 也许某些工具有选项-t [column nr]?
答案 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