如何解决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
, 像这样的正则表达式应该可以解决问题:
/.\\/(.+?)\\/.*?\\/.*$/
(请注意,我使用的是惰性搜索(+?
和*?
),因此我们不希望它不包含斜线)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。