我的 Ubuntu 机器上有以下文件:
文件.txt
http://example.com/https:/www.google.com
http://test.example.com
https://www.example.com
https://www.click.example.com
http://example.com
http://test.example.com
https://www.example.com/https:/www.google.com
https://www.click.example.com
我想要新文件中的输出:
新文件.txt
https://www.example.com
https://www.click.example.com
https://www.example.com/https:/www.google.com
https://www.click.example.com
我使用 sed 如下所示,但它在输出文件中包含包含以下内容的所有行https行中的任何位置。
sed -n '/https/p' file.txt > new_file.txt
我想将搜索限制为前 5 个字符:如果在前 5 个字符中找到https
,则打印该行,否则跳过它。
谢谢。
答案1
sed
默认使用基本正则表达式 ( BRE
) 来搜索文本,因此您可以使用它的语法:
^
匹配模式空间开头的空字符串,即在扬抑符之后出现的内容必须出现在模式空间的开头。
所以,对你来说:
sed -n '/^https/p' file.txt > new_file.txt
或者使用grep
:
grep '^https' file.txt > new_file.txt