cut
を使うのが好きです -c
を使用したLinuxのコマンド 国旗。ただし、 cut
の逆のセットを実行するコマンドを見つけることに興味があります。 。基本的に、入力が与えられた場合:
drwxrwxrwx 2 root root 4096 4096 4 20:15 bin
drwxrwxrwx 2 root root 4096 4096 4 20:15 Desktop
を除くすべてを表示したい 「4096420:15」。出力は次のとおりです:
drwxrwxrwx 2 root root bin
drwxrwxrwx 2 root root Desktop
理にかなっている場合は、文字xとyの間を文字通り切り取ることができるようにしたいと思います。
何か案は?書くのが難しいスクリプトになるとは想像できませんが、そのコマンドがすでに存在する場合は、それを使用したいと思います。
承認された回答:
他の人が指摘しているように、 ls
の出力を解析しないでください。 。 ls
を使用していると仮定します 単なる例であり、他の何かを解析する場合、必要なことを行う方法はいくつかあります。
-
カットコード>
-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
なので、これは失敗する可能性があります 連続するフィールド間の空白の量を変更して、フィールドの配置を改善します。カットコード>
foo
を扱います およびbar foo
別の方法で。bar -
awk
そのバリアントは、各入力行を空白のフィールドに分割して、必要なフィールドのみを印刷するように指示できるようにします。awk '{print $1,$2,$3,$4,$9}'
-
Perl
perl -lane 'print "@F[0 .. 3,8]"'