プロンプトで:
ls | awk '{printf("%s\t\t%s\n", $9, $3);}'
印刷する内容を正常に印刷しました。これをファイルに入れると、4〜5本の空行が表示されます(およそ出力の行数ls
)。
$ cat awk-file-owner-simple
#!/bin/bash
ls | awk '{printf("%s\t\t%s\n", $9, $3);}'
$ ./awk-file-owner-simple
_
_
_
_
これは_
空行を表します(Stackexchangeのコードフォーマッタを使用して表示できません)。
ベストアンサー1
に変更ls |
。ls -l |
明らかにシェルでエイリアスを使用していますls
(ls -l
おそらく関数やその他のオプション)。これを使ってtype ls
実際に実行していることを確認してください。スクリプトにはエイリアスがないため、正常に実行され、ls
単一の出力列があります。