タブで区切られたいくつかの列と、次のような数千行のテキストファイルがあります。
Foo Bar foo@bar.com 01.01.0001 SomeMoreStuff
foo@bar.com
ここで、この場合の電子メールだけを抽出したいと思います。
vim
または他の CLI ツールを使用して、電子メールの前後のすべてを削除する最も簡単な方法は何ですか?
タブで区切られたいくつかの列と、次のような数千行のテキストファイルがあります。
Foo Bar foo@bar.com 01.01.0001 SomeMoreStuff
foo@bar.com
ここで、この場合の電子メールだけを抽出したいと思います。
vim
または他の CLI ツールを使用して、電子メールの前後のすべてを削除する最も簡単な方法は何ですか?
次のコマンドは、3 番目の列を出力します。
cut -f3 file_name
Vim では、単純なマクロを使用して確実な置換を考え出さなければならないという厳しい見通しから逃れることができました。
まず、マクロを記録します。
qq
0
d2f<tab> <-- this is a tab key
f<tab> <-- this is a tab key
D
q
次に、以下の行のマクロをバッファの最後に適用します。
:+1,$norm @q
バッシュで:
while read -a ARRAY; do echo ${ARRAY[2]}; done < input
awk モードの perl
perl -lane 'print $F[2]' input