パイプでも複数行のlsが使いたい
30分プログラム、その388。
普通にlsをパイプで使うと、一行になってしまう。
$ ls | head 13.pl 180-croquis_file.pl 181-hello.oz 182-mapreduce.ml 183-p4.ml 184-tarai.hs 184-tarai.rb 185-auto_insert.rb 186-url.rb
ls -Cを使えば複数行になるけど、幅が80行になってしまう。
$ ls -C | head 359-cal.py kaibun.pl 3n1.pl 360-sh.scm keitai.pl ...
というわけで、行幅を認識しつつ複数行を出力するスクリプトを作ってみた。
$ perl ls.pl | head 320-problem46.scm db newton.py 13.pl 321-problem47.py db.pl normal.rb ...
使い方
$ perl ls.pl $ perl ls.pl /
ソースコード
#! /usr/bin/perl # -*- mode:perl; coding:utf-8 -*- # # ls.pl - # # Copyright(C) 2008 by mzp # Author: MIZUNO Hiroki / mzpppp at gmail dot com # http://howdyworld.org # # Timestamp: 2008/10/12 21:53:41 # # This program is free software; you can redistribute it and/or # modify it under MIT Lincence. # use strict; use warnings; use Data::Dumper; my $stty = `stty -a`; if($stty =~ /columns (\d+)/){ print `ls -w $1 -C @ARGV`; }