文字列を区切り文字として使用してテキストのリストを切り取りたい場合、それは可能ですか?たとえば、シェルスクリプトのリストが同じPerlスクリプトを呼び出すディレクトリがあります。
abc.pl
だから私がするとき
$grep abc.pl *
そのディレクトリでは、次の結果が得られます
xyz.sh: abc.pl 1 2
xyz2.sh: abc.pl 2
mno.sh: abc.pl 3
pqr.sh: abc.pl 4 5
基本的に、「abc.pl」の後のすべての出力が必要です(現在Perlに渡されている範囲引数を確認するため)
試したとき
$grep abc.pl * | cut -d'abc.pl' -f2
OR
$grep abc.pl * | cut -d'abc\.pl' -f2
それは私に
cut: invalid delimiter
私がカットのために人を読むとき、それは述べています
delimはマルチバイト文字にすることができます。
私はここで何をしている/間違っていると解釈していますか?
私がカットのために男を読んだとき、それは述べています...デリムはマルチバイト文字である可能性があります。
マルチバイトですが、文字列ではなく1文字だけです。
canti:~$ ll | cut --delimiter="delim" -f 1,2
cut: the delimiter must be a single character
Try `cut --help' for more information.
canti:~$ cut --version
cut (GNU coreutils) 5.97
文字列として指定できるのは出力区切り文字のみです(この場合は役に立ちません)。
--output-delimiter=STRING
use STRING as the output delimiter the default is to use the input delimiter
これを使ってみてください。
$grep abc.pl * | awk -F 'abc.pl' '{print $2}'
-F fs --field-separator fs入力フィールド区切り文字にfsを使用します(FS事前定義変数)の値)。
grep abc.pl | awk '{print $3, $4}'
を使用してみませんか?
$ grep abc.pl * |カット-d '' -f3-999
その場合は、区切り文字としてスペース文字を使用してください。
または、Rubyなどを試すこともできます。
grep abc.pl * | Ruby -ne 'p $_.chomp.split("abc.pl").last'