7

假设我们有这样的文件:

sometext11 sometext12 sometext13 sometext21 sometext22 sometext23

文本由制表符分隔,我们知道第 1 列中的一些文本,但想从第 2 列中获取文本。我知道我可以通过以下方式获取文本:

grep 'sometext11' file.txt

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

4

4 回答 4

13

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
于 2012-06-21T09:49:34.873 回答
3
awk '{print $2}' < yourfile
于 2012-06-21T06:38:21.737 回答
2

您可以使用剪切命令

cut -f2
于 2012-06-21T06:45:50.013 回答
0

你不需要grep

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

或者,grep如果您的支持 Perl 兼容正则表达式 (PCRE),例如 GNU 或 OS X,您也可以全部完成grep

grep -Po '(?<=sometext11\t).*?(?=\t.*)' file.txt
于 2012-06-21T11:20:47.730 回答