grep仅针对行上的特定单词

| 只需要grep倒数第二到第三之间的单词/ 这在下面的摘录中显示,以注意文件名的位置从开头算起并不总是相同。任何想法都会有所帮助。 / home / user / Drive-backup / 2010备份/ 2010帐户/Jan/usernameneedtogrep/user.dir/4.txt     
已邀请:
        我会用
awk
awk -F/ \'{print $(NF-2)}\'
在ѭ2上分割 “ 3”是最后一列的索引,“ 4”是最后一列本身,“ 5”是倒数第三列。 当然,您可能首先需要过滤掉输入中不是路径的行(例如,使用
grep
,然后用管道将其连接到
awk
)     
        这是完成工作的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
    
        像这样的正则表达式应该可以解决问题:
/.\\/(.+?)\\/.*?\\/.*$/
(请注意,我使用的是惰性搜索(
+?
*?
),因此我们不希望它不包含斜线)     

要回复问题请先登录注册