bash - How to find IP address in line and append it to the end of line - with sed
问题描述
我需要一个 sed 解决方案来修改以下文件:我有一个文本文件,每行都包含一个 IP 地址。我需要将 IP 地址(连同其他一些文本)复制到行尾:
前:
SOMETEXT <IP address>
后:
SOMETEXT <IP address> TEXT1 <IP address> TEXT2
我可以单独将文本添加到行尾
sed -e 's/$/ TEXT1 /' -i filename
我还可以从以下行中获取 IP
sed -n 's/.*\(\(\(^\| \)[0-9]\{1,3\}\.\)\{1\}\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}\) .*/\1/gp' filename
只是我不能将这两个编译在一起。:)
谢谢。
解决方案
假设您的表达有效(又名:我自己没有尝试过):
sed -n 's/\(\(\(^\| \)[0-9]\{1,3\}\.\)\{1\}\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}\) .*/\1 TEST1 \1 TEXT2/gp' filename
推荐阅读
- html - 列弹性重叠后的 IE 11 元素
- reactjs - 提高axios获取下载速度
- javascript - 如何使用 lat longs 从 google maps API 获取楼层号或套房
- python - “ModelFormMetaclass”类型的参数不可迭代
- python - 在 Python 中使用正则表达式重命名列
- c++ - C++20 概念:多种返回类型要求?
- python - 为什么在 Google Colab 中尝试将目录更改为已挂载的驱动器时出现错误?
- java - 将没有别名的自签名 SSL CA 证书列入白名单
- powershell - 使用 PowerShell 从 IE 获取当前 URL 地址
- python - 分数等级分类