2016-05-13 4 views
0

私たちは、コマンドで最長のラインと注文番号の長さを得ることができます。コマンドのvimで/tmp/test.txt開くために、今すぐvimでawkを実行して最長行とその注文番号を取得するには?

awk '{ print length(), NR, $0 | "sort -rn" }' /tmp/test.txt |head -n 1 

を。

:!awk '{ print length(), NR, $0 | "sort -rn" }' % |head -n 1 

Press ENTER or type command to continue 
head: cannot open ‘n’ for reading: No such file or directory 
head: cannot open ‘1’ for reading: No such file or directory 
sort: fflush failed: standard output: Broken pipe 
sort: write error 

どのようにそれを修正するには?

+2

私はそれを再現できません。 'vim -u NONE/tmp/test.txt'で試してください。それが修正されたら、プラグインでバイナリ検索のデバッグをしてください。それが修正されない場合は、OSまたはVimのバージョンと関係している可能性があります。 – Amadan

答えて

1

あなたのコマンドは非常に非効率的です。とにかくawkを使用している場合は、最長行の長さを計算させる必要があります。

awk '{ l = length($0); a = (a > l) ? a : l } END {print a}' test.txt 
関連する問題