bash - 限制 sed 删除所有结尾相同的 url
问题描述
我有一个包含许多以“ .com ”结尾的 URL 的测试文件,但我不想删除 Gmail id URL ( abc@gmail.com ),但想删除像“ youtube.com ”这样的 URL。
示例输入:-你好吗,观看由abc@gmail.com提供的youtube.com。
期望的输出:- 你好吗,看由abc@gmail.com提供
我在做什么-->
我正在使用 sed 命令删除所有以“.com”结尾的 URL
sed -r -i -e 's![^:space:] .com[^:space:]!!g' 文件
解决方案
使用交替捕获gmail.com
:
sed -r -i -e 's!([^[:space:]()]*gmail\.com[^[:space:]()]*)|[^[:space:]()]*\.com[^[:space:]()]*!\1!g' file
\1
放回第 1 组中的值。
推荐阅读
- c - 使用 realloc 初始化指向 NULL 的指针数组,无需迭代
- bash - 案例语句未捕获空字符串
- apache-spark - 将单个 DStream 拆分为多个 Hive 表
- express - 快速会话不保存数据
- javascript - 轮播 3 张图像,一次一张
- google-maps - 带有区域边界的 Google Map Place API
- python - Python:Luhn 算法/if 语句从不执行
- swift - 更改视图控制器而不将前一个控制器存储在内存中
- json - 如何在 spark 2.3.0 结构化流中轻松地从 kafka 中提取已知类的 json 数据
- java - 在 MacOS 上安装 Hadoop 导致 CMake 构建失败