使用sed添加字符

时间:2014-10-22 20:53:54

标签: regex perl sed cygwin

我正在为一个大文件添加一行字符。每行有3个八位字节的IP网络,以句点和换行符结束(\ n)。我在cygwin工作。

34年10月23日

23.34.45

我试图用sed为我做这项工作;我尝试了以下两个命令但没有成功:

sed 's/\n/1\n/' <filename>

sed 's/\n/1\n/g' <filename>

sed 's/(.*)/${1}1/' <filename>

我已经使用perl -pe 's/(.*\.)/${1}1/' <filename>

在perl中工作了

我做错了什么?

谢谢

2 个答案:

答案 0 :(得分:1)

在每一行的末尾添加foo

sed 's/$/foo/' filename > new_filename

替换原位:

sed -i 's/$/foo/' filename

答案 1 :(得分:0)

sed默认逐行工作(所以最后没有新行)

sed 's/$/1/' YourFile

做你的伎俩,但没有任何chekc(所有行必须有一个点的一个IP的3个八位字节开始),也许som一点点检查是有用的

sed '/\([0-9]\{1,3\}\.\)\{3\} *$/ s/ *$/1/'

验证该行以3个数字(1到3位)结束,每个数字用点分隔,最后用一些尾随空格。在这种情况下,请添加1并删除尾随空格。