簡體   English   中英

如何在行中查找IP地址並將其附加到行末-使用sed

[英]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

您可以嘗試跟隨awk嗎?

awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/){$0=$0 " TEXT1 " substr($0,RSTART,RLENGTH) " TEXT2"} 1' Input_file

或在此處也添加非單一襯里形式的解決方案。

awk 'match($0,/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/)
{
  $0=$0 " TEXT1 " substr($0,RSTART,RLENGTH) " TEXT2"
}
1' Input_file
sed 's/\(\([0-9]\{1,3\}[.]\)\{3\}[0-9]\{1,3\}\)/\1 TEXT1 \1 TEXT2/' in

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM