我正在为一个大文件添加一行字符。每行有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>
我做错了什么?
谢谢
答案 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
并删除尾随空格。