Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用sed添加字符_Regex_Perl_Sed_Cygwin - Fatal编程技术网

Regex 使用sed添加字符

Regex 使用sed添加字符,regex,perl,sed,cygwin,Regex,Perl,Sed,Cygwin,我正在为一个大文件在行尾添加一个字符。每行有3个八位字节的IP网络,以一个周期和一个换行符(\n)结束。我在cygwin工作 i、 e 10.23.34 23.34.45 我正在尝试使用sed为我完成工作;我尝试了以下两个命令,但没有成功: sed 's/\n/1\n/' <filename> sed 's/\n/1\n/g' <filename> sed 's/(.*)/${1}1/' <filename> sed's/\n/1\n/' sed's/\

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

i、 e

10.23.34

23.34.45

我正在尝试使用
sed
为我完成工作;我尝试了以下两个命令,但没有成功:

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

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

sed 's/(.*)/${1}1/' <filename>
sed's/\n/1\n/'
sed's/\n/1\n/g'
sed's/(.*)/${1}1/'
我已经让它在perl中与
perl-pe的/(.*\)/${1}1/'

请问我做错了什么


谢谢

在每行末尾添加一个
foo

sed 's/$/foo/' filename > new_filename
替换到位:

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

默认情况下,sed逐行工作(因此末尾没有新行)

做你的把戏,但没有任何chekc(所有线必须有一个IP的3个八位组开始点结束),也许som小检查是有用的

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

验证该行是否以3个数字(1到3位)结尾,每个数字之间用一个点分隔,最后是一些尾随空格。在本例中,添加
1
并删除尾随空格。

您的预期输出是什么?预期输出是10.23.34.1、23.34.45.1等。只需在已采用X.Y.Z格式的每行末尾添加1。谢谢!!我不敢相信我没有意识到我可以用一个s/$/1来做这件事。
$
表示行的enf。
sed '/\([0-9]\{1,3\}\.\)\{3\} *$/ s/ *$/1/'