我正在腳本中尋找文件路徑。所以我要寫出一個腳本, 喵喵出文件,然後查找「/」。量化捕獲的正則表達式
我寧願使用perl正則表達式,只想grep出文件路徑。
[email protected]:~ $ cat /sbcimp/dyn/data/FOO/GSD/scripts/FOOonoff.pl | grep "/"
#!/usr/bin/perl
my $output_file = "/sbcimp/dyn/data/stmFOO3/dailymetrics/PartRates/file6.csv";
my $input_file_name_ESTATE = "/sbcimp/dyn/sym/data/stmFOO3/part_rates/FOO_estate.$year$month1$day1.1630.csv";
my $input_file_name_ESTATE = "/sbcimp/data/stmFOO3/part_rates/FOO_estate.20140829.1630.csv";
my $input_file_name_ESTATE2 = "/sbcimp/part_rates/FOO_estate.$year$month1$day2.1630.csv";
my $input_file_name_ESTATE3 = "/sbcimp/FOO_estate.$year$month2$day3.1630.csv";
my $input_file_name_NEW = "/sbcimp/dyn/data/stmFOO3/dailymetrics/RiskTiers/new_terms.csv";
$argVal =~ s/\s+$//;
$argVal =~ s/^\s+//;
$argVal =~ s/\"$//;
$argVal =~ s/^\"//;
$argVal =~ s/\'$//;
$argVal =~ s/^\'//;
如果我把這個文件放到perl裏,我就得到根目錄。
[email protected]:~ $ cat /sbcimp/dyn/data/FOO/GSD/scripts/FOOonoff.pl | perl -nle 'print /(\/\w+\/)/' | sort -u
/sbcimp/
我明白量詞正則表達式,但如果我使用 '打印/(/ \ w + /){1,9} /' 是不會給我「/w+/..either 1或9倍。我將尋找從根路徑1次或多次路徑。 我如何量化整個捕獲的正則表達式,而不僅僅是最後一個字符?
大概應該是'/^\ /(\ w + \ /)+ /'代替。捕獲第一個斜槓,然後捕獲任意數量的\ w + /'序列。 – raina77ow 2014-09-04 04:11:18
最簡單的方法是刪除字符串末尾的任何非斜槓符號(例如,使用'〜[^ /] + $ ~~')。 – raina77ow 2014-09-04 04:16:10
所以這是不是真的可以量化? – capser 2014-09-04 04:20:10