您好我最近因文件编辑的采访问题而崩溃并烧毁。有点在烦我。我在论坛上搜索过,但确实很好。
问题是:
testfile.txt具有以下内容:
some test text 1
some test text 2
some test text 3
更改testfile.txt,使它看起来像这样(不使用VI或gedit):
some test text 1
some more test text
some test text 2
some more test text
some test text 3
some more test text
我曾尝试使用sed和awk,但文本并未出现在需要的位置。任何帮助将不胜感激。
答案 0 :(得分:2)
这可能适合你(GNU sed):
sed -i 'asome more test text' file
这会将文本some more test text
附加到每一行并修改原始文件。
答案 1 :(得分:2)
假设:
$ echo "$txt"
some test text 1
some test text 2
some test text 3
在awk中:
$ echo "$txt" | awk '{print; print "some more test text"}'
some test text 1
some more test text
some test text 2
some more test text
some test text 3
some more test text
答案 2 :(得分:1)
将此内容发布为原始问题,以便将第二行插入文本文件。
这是使用sed
$ seq 3 | sed 2iinserted
1
inserted
2
3
用于在每行之后插入文本
$ seq 3 | sed 1~1ainserted
1
inserted
2
inserted
3
inserted
如果您不明白这是什么,请阅读一些教程,互联网上充满了它们。
答案 3 :(得分:0)
鉴于输出匹配重复短语some test text
,我认为
sed 's/some test text.*/&\nsome more test text/' file
会做
some test text 1
some more test text
some test text 2
some more test text
some test text 3
some more test text
当然&
ubstitute命令的RHS中的s
char捕获匹配的所有字符并将它们插入到输出中。我们在新行上添加了\n some more test text
,我们很好。
请注意,非gnu / linux seds可能无法将\n
识别为换行符,在这种情况下(从cmd行开始),您需要使用组合键Ctrl-V Ctrl-M
添加换行符你的输出。 (我从来没有看到它解释了^M
如何在文件中转换为^J
,但它可以追溯到80年代,所以请参阅图。)
IHTH