0

我有一个包含数千个 IP 的文件内容,我的问题是如何添加所有带有“允许来自”的 IP 行,例如如下:

由此:

27.146.0.0/16
49.50.12.0/19
49.50.44.0/20
49.50.60.0/22

成为这样:

allow from 27.146.0.0/16
allow from 49.50.12.0/19
allow from 49.50.44.0/20
allow from 49.50.60.0/22
allow from 49.124.0.0/15
allow from 57.73.15.0/24

是否有任何 Windows 工具可以做到这一点,或者 Linux 命令也应该可以。请帮忙

4

3 回答 3

2

使用真正有男子气概的编辑器有什么问题?

在 Vim/gVim 中:

  1. gg: 将光标放在文件的开头
  2. Control+ v: 启动视觉块模式
  3. G: 将光标移动到文件末尾,选择每一行
  4. I:进入插入模式
  5. 输入你的字符串:allow from
  6. ESC退出插入模式。
  7. :wq保存并退出。
  8. 完毕!

Sed 可能更容易...

于 2013-08-20T14:54:06.783 回答
1

Linux

使用 awk:

$ awk '$0="allow from "$0' file
allow from 27.146.0.0/16
allow from 49.50.12.0/19
allow from 49.50.44.0/20
allow from 49.50.60.0/22

$0整个字符串一样,我们在其开头附加文本。然后,它被打印出来,因为默认行为awkis {print $0}

sed

$ sed 's/^/allow from /' file
allow from 27.146.0.0/16
allow from 49.50.12.0/19
allow from 49.50.44.0/20
allow from 49.50.60.0/22

作为^该行的开头,我们将其替换为“allow from”文本。这样,“文件的新开头”成为您要添加的文本。

这两个示例都会在屏幕上显示输出。要保存它,请执行command file > new_file.

视窗

这个答案可能会对您有所帮助:在 .txt 文件中的每个新行的开头添加文本。然而,正如肯特在评论中指出的那样,任何编辑都可以做到。我强烈推荐 Notepad++ 用于这种目的。

于 2013-08-20T14:32:25.320 回答
0

你可以这样做awk

awk '{print "allow from "$0}' <filename>
于 2013-08-20T14:33:05.457 回答