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