この問題を例を挙げて説明します。2 つの列を持つリストを生成したいとしましょう。列 1 にはファイル名が含まれ、列 2 にはそのファイルの md5 サムが含まれます。
これは、次のスクリプトを使用して実行できます。
for FILE in `ls -p | grep -v "/"`;
do
printf "%s %s\n" "$FILE" `md5 -q "$FILE"`;
done;
これは、パイプを使用して単一の行で実行できますか? のさまざまな組み合わせを試してみましたがsed
、何かが足りないと思います。これが私の試みの1つです:xargs
printf
ls -p | grep -v "/" | xargs -I FILE printf "%s %s\n" FILE `md5 -q FILE`
その試みではFILE
、バッククォートの内側は置換されていませんが、これはそれほど驚くべきことではありません。
これは、複数行のスクリプトを使用する必要があるようなものですか? ロジックや制御フローがないため、ワンライナーが可能であると感じており、ツールを適切に使用していないか、適切なツールを見つけていない可能性があります。
タイトルについてお詫び申し上げます。この質問を何と呼ぶべきかわかりません。