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を使用 および-fcut -d ' ' -f 1,2,3,4,9man 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]"'