我有一个文件,如下所示。
<a href="http://firstlink.com" title="title1">
<a href="http://secondlink.com" title="title2">
<a href="http://thirdlink.com" title="title3">
<a href="http://fourthlink.com" title="title4">
Run Code Online (Sandbox Code Playgroud)
我正在尝试仅从上述文件中提取 URL。我正在使用以下命令。
grep -o '\".*\"' new.txt
Run Code Online (Sandbox Code Playgroud)
但是,上面的命令给了我输出,
"http://firstlink.com" title="title1">
"http://secondlink.com" title="title2">
"http://thirdlink.com" title="title3">
"http://foruthlink.com" title="title4">
Run Code Online (Sandbox Code Playgroud)
我试图只提取没有""
. 所以,我的预期输出是,
http://firstlink.com
http://secondlink.com
http://thirdlink.com
http://fourthlink.com
Run Code Online (Sandbox Code Playgroud)
我应该如何更改 grep 命令?或者是否可以在 perl、awk 或 sed 命令中执行此操作?
dev*_*ull 15
你可以使用awk
.
awk -F\" '{print $2}' filename
Run Code Online (Sandbox Code Playgroud)
将产生所需的输出。
使用sed
:
sed 's/[^"]*"\([^"]*\).*/\1/' filename
Run Code Online (Sandbox Code Playgroud)
使用grep
:
grep -oP '[^"]*"\K[^"]*' filename
Run Code Online (Sandbox Code Playgroud)
Emm*_*uel 12
正则表达式、流编辑器和解释器在这里是多余的。
使用旧的好切:
cut -d \" -f 2 < filename
Run Code Online (Sandbox Code Playgroud)