1

最後の 2 番目と 3 番目の間の単語のみを grep する必要があります /

これは以下の抜粋に示されていますが、ファイル名の位置は先頭から数えると必ずしも同じではないことに注意してください。どんなアイデアでも役に立ちます。

/home/user/Drive-backup/2010 Backup/2010 Account/Jan/usernameneedtogrep/user.dir/4.txt

4

3 に答える 3

1

これがその仕事をするPerlスクリプトです:

my $str = q!/home/user/Drive-backup/2010 Backup/2010 Account/Jan/usernameneedtogrep/user.dir/4.txt!;
my $res = (split('/',$str))[-3];
print $res;

出力:

usernameneedtogrep
于 2011-06-16T15:58:35.617 に答える
0

私は使用しますawk

awk -F/ '{print $(NF-2)}'
  • 分割/
  • NF$NF最後の列、最後の列自体、および最後から3番目の列のインデックスです$(NF-2)

もちろん、最初にパスではない入力内の行を除外する必要がある場合があります(たとえば、を使用してgrepからにパイプするawk

于 2011-06-16T15:58:39.120 に答える
0

このような正規表現はうまくいくはずです:

/.\/(.+?)\/.*?\/.*$/

(遅延検索 (+?および*?) を使用しているので、不要なスラッシュが含まれていないことに注意してください)

于 2011-06-16T16:12:48.717 に答える