現在、ディレクトリ内のすべてのファイルのスペルチェックを試みていますが、*.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