grep为每行中的模式

时间:2016-11-01 17:42:32

标签: linux bash sed grep

我有一个包含以下网址的大文件,并希望在bash脚本中为每个网址创建不同的目录,并将以下文件命名为URL作为bash脚本的输入。

www.example.com/B000742278U3/B000742278U3.m3u8?p=33&e=1481028335&h=5380934bbca73e3e6de52299b92368b1
www.example.com/B000742279U3/B000742279U3.m3u8?p=33&e=1481028335&h=5380934bbca73e3e6de52299b92368b1
www.example.com/B000742280U3/B000742280U3.m3u8?p=33&e=1481028335&h=5380934bbca73e3e6de52299b92368b1

预期产出:

B000742278U3
B000742279U3
B000742280U3

我尝试了下面的命令,但无法实现我想要的目标:

echo $1
mkdir $(echo $1 | sed 's/.*B\(.*\)3/\1/')
cd $(echo $1 | sed 's/.*B\(.*\)3/\1/')

4 个答案:

答案 0 :(得分:1)

您可以在cut

中使用斜杠作为字段分隔符
$ cut -d '/' -f 2 infile
B000742278U3
B000742279U3
B000742280U3

答案 1 :(得分:1)

你可以试试这个

 cut -d '/' -f2 | xargs mkdir

答案 2 :(得分:0)

以下是alert tcp any any -> any any (content:"|00 60 08 a8 61 24|"; content:"|00 10 a4 c5 7c 38|"; nocase; msg:"Alert")版本:

awk

答案 3 :(得分:0)

awk -F'[./]' '{print $5}' file

B000742278U3
B000742279U3
B000742280U3