の出力をls -l
、スペースの代わりにタブを使用してフィールドを分離するように変更するにはどうすればよいですか?出力をスプレッドシートに貼り付けたいです。可変数のスペースのパディングは、そうすることを難しくします。説明する:
drwxr-xr-x 2ルートルート4096 Sep 26 11:43 wpa_supplicant -rw-r ----- 1ルートダイヤルアウト66 Sep 26 11:43 wvdial.conf drwxr-xr-x 9ルートルート4096 Oct 8 08:21 X11 drwxr-xr-x 12ルートルート4096 2月18日23:31 xdg drwxr-xr-x 2ルートルート4096 Jan 31 06:11 xml drwxr-xr-x 2ルートルート4096 Nov 22 07:26 xul-ext -rw-r--r-- 1ルートルート349 2012年1月13日zsh_command_not_found
ls -l /etc
上記の抜粋では、行1、2、3は列2に1桁あり、行4は2桁です。つまり、行1〜3の列1と2を分離するために2つのスペースを使用して、行4には1つのスペースのみを使用して位置合わせが行われます。
ls
言っているかを知ることである場合、その出力の解析は問題ありません。それはめったに目標ではありません。間違いなくここです。あなたが使用した方法は非常に良いと思います(どの方法でも、いくつかのニーズがある場合、望ましくない結果が生成されます)。ただし、間違いなく構文解析のls
方が優れている可能性があります。実際にタブ文字が含まれているファイル名の場合を考えてみましょう。ls -l
タブを?
文字に置き換えます。スクリプトはタブ文字を保持します。その出力がタブ区切りとして解釈され、スプレッドシートの作成に使用される場合、追加の列が作成されます。ファイル名に改行があると、パフォーマンスが著しく低下します。