在一定的线路范围内,用sed替换线路馈线

在一定的线路范围内,用sed替换线路馈线,sed,Sed,是否可以用sed替换某一行位置范围内的/n(例如,用空格) 这是一个没有范围过滤器的示例。是否有可能在sed中设置一个范围 for f in `find ${_filedir} -type f` do #replace all LF with spaces sed 's/\n/ /g' ${f} > ${f}.noCR done 好的,这里有一个例子: 让我们看几行: “我现在想挣脱束缚” “朋友就是朋友” 我想用0到16范围内的“m”替换任何“n”,结果是: “我想马上休息”

是否可以用sed替换某一行位置范围内的/n(例如,用空格)

这是一个没有范围过滤器的示例。是否有可能在sed中设置一个范围

for f in `find ${_filedir} -type f`
do
  #replace all LF with spaces
  sed 's/\n/ /g' ${f} > ${f}.noCR
done
好的,这里有一个例子:

让我们看几行:

“我现在想挣脱束缚”
“朋友就是朋友”

我想用0到16范围内的“m”替换任何“n”,结果是:

我想马上休息”

Amd friemds将成为朋友”

再次编辑

试试awk:

awk '{l=substr($0,1,10);r=substr($0,11);gsub(/n/,"m",l);print l r}' file
其中,
l
是字符串的左侧部分,
r
是右侧部分,
gsub()
进行全局替换

已编辑

我可能会使用Bash参数替换它-文档:

或者,在开始和结束模式之间:

sed '/start/,/end/s/foo/bar/' file

你试过运行这个代码吗?我认为它不起作用。它只是一个显示上下文的片段。sed命令工作正常,但没有范围限制。对不起,我的问题有点不清楚:我不是指行的范围,而是一行内的范围。而且这与\n无关。它可以是任何角色。问题是:是否可以将范围限制在与sed一致的范围内!可能请用一两个例子来更新你的问题,说明你的意思,展示你的输入和输出数据。我上面的awk解决方案更简洁一些。有了这个解决方案,节目可以继续。。。必须继续;-)如果这个答案对你有用,请考虑接受它(点击投票计数旁边的空心滴答),这样我就可以得到一个可爱的大绿蜱。如果它不起作用,或者你仍然有问题,请说,我(希望其他人)会尝试进一步帮助你。谢谢
sed '2,8s/foo/bar/' file
sed '/start/,/end/s/foo/bar/' file