我有一个很长的文件,我想在比赛前删除27个字符并在比赛前替换一个字母
example 123456789123456789123456789Replace
所以输出应该是
"aReplace"
(在&#39之前删除28个字母;替换'并在'替换'之前添加字母' a')
我没有使用实际的文件,并且模式太大
答案 0 :(得分:1)
如果你想要Replace
之前的28个字符(根据你的问题标题)被字母a
替换,你可以用
sed 's/.\{28\}Replace/aReplace/'
请注意,你提供的字符串只有27个字符,但是......(正如你的文字正文所反映的那样) - 所以你想要
sed 's/.\{27\}Replace/aReplace/'
在aReplace
。
123456789123456789123456789Replace
假设您的文本文件为myFile.txt
,则您的完整命令为
cat myFile.txt | sed 's/.\{27\}Replace/aReplace/' > newFile.txt
这会将修改后的内容放入新文件newFile.txt
中 - 它允许您在覆盖输入文件之前确认它按计划工作...
答案 1 :(得分:1)
Perl单行可能会有所帮助。
perl -pe 's/.{27}(?=Replace)/a/g' file
答案 2 :(得分:0)
使用sed:
echo '123456789123456789123456789Replace' | sed -e 's/.\{27\}Replace/"aReplace"/g'
输出:
"aReplace"