私はcut
Linuxで-c
フラグ付きコマンドを使用するのが好きです。ただし、デフォルトでは入力が与えられたら、実行するコマンドを見つけることに興味がありますcut
。
drwxrwxrwx 2 root root 4096 4096 4 20:15 bin
drwxrwxrwx 2 root root 4096 4096 4 20:15 Desktop
私はすべてを見たいです。とは別に「4096 4 20:15」。出力は次のとおりです。
drwxrwxrwx 2 root root bin
drwxrwxrwx 2 root root Desktop
意味があれば、文字xとyの間を文字通り切り取ることができるようにしたいです。
どんなアイデアがありますか?これが書くのが難しいスクリプトであるとは想像できませんが、コマンドがすでに存在する場合は喜んで使用します。
ベストアンサー1
他の人が指摘したように、出力を解析しないでください。ls
。これを例として使用し、他のものを解析すると仮定すると、必要なものを達成するためのls
いくつかの方法があります。
cut
そして-d
-f
cut -d ' ' -f 1,2,3,4,9
から
man cut
:-d, --delimiter=DELIM use DELIM instead of TAB for field delimiter -f, --fields=LIST select only these fields; also print any line that contains no delimiter character, unless the -s option is specified
特に、連続したフィールド間のスペースの量を変更し
ls
てより良い位置合わせを行うと、失敗する可能性があります。扱い、変わります。ls
cut
foo<space>bar
foo<space><space>bar
awk
そのバリエーションは各入力行を空のフィールドに分割するため、必要なフィールドだけを印刷するように指示できます。awk '{print $1,$2,$3,$4,$9}'
真珠
perl -lane 'print "@F[0 .. 3,8]"'