假设我们有这样的文件:
sometext11 sometext12 sometext13 sometext21 sometext22 sometext23
文本由制表符分隔,我们知道第 1 列中的一些文本,但想从第 2 列中获取文本。我知道我可以通过以下方式获取文本:
grep 'sometext11' file.txt
如何从第二列获取文本?也许一些带有选项 -t [column nr] 的工具?
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
awk '{print $2}' < yourfile
您可以使用剪切命令
cut -f2
你不需要grep
:
awk '/sometext11/ {print $2}' file.txt
或者,grep
如果您的支持 Perl 兼容正则表达式 (PCRE),例如 GNU 或 OS X,您也可以全部完成grep
:
grep -Po '(?<=sometext11\t).*?(?=\t.*)' file.txt