findとaspelを一緒に使う

findとaspelを一緒に使う

現在、ディレクトリ内のすべてのファイルのスペルチェックを試みていますが、*.md次のコマンドは失敗します。

>> find . -maxdepth 1 -name "*.md" | xargs -I {} aspell check {}
xargs: aspell: exited with status 255; aborting

私はこれがユーザー対話をaspell必要としますstdinが、何とかxargs提供されていないためだと仮定します。私が一つ見つけたハッカーがTwitterを攻撃する

find . -maxdepth 1 -name "*.md" | xargs -n 1 xterm -e aspell check

しかし、これは毎回新しいxtermを開きます。 findコマンドのみを実行した結果のように、元のコマンドが機能するようにするにはどうすればよいですかaspell

ベストアンサー1

  • xargsまったく必要ありません。execオプションを使用してください。

    find . -maxdepth 1 -name "*.md" -exec aspell check {} \;
    
  • あなたまたは将来の読者が使用する必要がある場合に備えて、新しいxargsシェルを作成し、端末( )から標準入力を取得して/dev/ttyそれを実行できます。

    find . -maxdepth 1 -name "*.sh" | xargs -n1 sh -c 'aspell check "$@" < /dev/tty' aspell
    

おすすめ記事