これを行うと、ls
出力は列に表示されますが、出力は1列、行単位、行ごとに1つの項目にのみ存在する必要があります。
だから私が考えることができる唯一の方法は次のとおりです。
echo * | xargs -n1 echo
これがそれを実装する標準的な方法ですか、それとも悪いスタイルですか?
ベストアンサー1
xargsに関する一般的なアドバイスは、xargsを使用しないことですxargs
。対応する入力形式は一般的なツールではサポートされていません。
xargs 使用法の次のレベルは use でxargs -0
、ここで入力はヌルで区切られます。しかし、あなたの場合、xargsはとにかく意味がありません。
ls
1行に1つのファイルしか持たないようにするには、を使用しますls -1
。ls
このコマンドは、出力がパイプまたはファイルに転送されると、常に1行に1つのファイルを配置します。 plainは、出力が端末に渡されると列のls
ファイル名をソートしますが、ls -1
そうではありません。
これは、単語リストがあり、1行に1単語ずつ印刷したい場合に機能しますprintf '%s\n'
。echo
スペースの代わりに各要素の後に改行を印刷し、バックスラッシュやダッシュ処理のリスクがないことを除いて、同様に機能します。
printf '%s\n' * # prints the names of the files in the current directory
printf '%s\n' "$@" # prints the positional arguments
printf '%s\n' "${a[@]}" # prints the element of the array `a`