次のようなファイルがあるとします。
sometext11 sometext12 sometext13 sometext21 sometext22 sometext23
テキストはタブで区切られており、列 1 のテキストはわかっていますが、列 2 からテキストを取得したいと考えています。次の方法で行を取得できることがわかっています。
grep 'sometext11' file.txt
2列目からテキストを取得するには? オプション -t [列番号] を備えたツールでしょうか。
awk:
awk '{print $2}' file.txt
切る:
cut -f2 file.txt
bash:
while read -a A; do echo ${A[1]}; done < file.txt
perl:
perl -lane 'print $F[1]' file.txt
grepingしている文字列がわかっている場合は、次を使用できますgrep
。
grep -o 'sometext12' file.txt
awk '{print $2}' < yourfile
カットコマンドを使用できます
cut -f2
あなたは必要ありませんgrep
:
awk '/sometext11/ {print $2}' file.txt
grep
または、GNUやOS XなどのPerl互換正規表現(PCRE)をサポートしている場合は、すべてを実行できますgrep
。
grep -Po '(?<=sometext11\t).*?(?=\t.*)' file.txt