我有一个文件,其中我从起始位置偏移,我需要插入一些文本。对于例如如果文件如下所示
Hello World
How are you doing today?
I'm good. Thanks for asking.
我可能会收到3,10,25的输入偏移,从我开始到insert
文字。
有命令行方式吗?我尝试过使用sed
但是,它逐行工作,并且不支持从开始的偏移量。这就是我为sed写的
sed 's/./&\
inserted text\
/25' in.txt > out.txt
上面的内容是 - 对于每一行,在第25个字符处,它插入inserted text
- 但是,我希望它在距文件起始位置的第25个偏移处完成。
答案 0 :(得分:1)
执行此操作的一种方法是在RS
中使用控制字符awk
。这使整个文件成为awk的单个记录:
awk -v RS='\07' -v p=25 -v t='inserted text' '{
print substr($0, 1, p) t substr($0, p+1)}' ORS= file
Hello World
How are you dinserted textoing today?
I'm good. Thanks for asking.