首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >怎么写到第10行?

怎么写到第10行?
EN

Stack Overflow用户
提问于 2011-02-04 00:56:05
回答 6查看 2.5K关注 0票数 4

我需要一个脚本,它可以将文本写到从第10行开始的存在的文件。它是一个空行,所以它不会是一个查找/替换。最好是在bash中,但是终端可以解释的任何东西都会工作得很好。

代码语言:javascript
复制
RE-EDITED:

抱歉,我测试后还是有点问题.我觉得这和我想写的文件有关。也许这会让事情更容易..。

代码语言:javascript
复制
  3 c
  4 d
  5 e
  6 f
  7 g
  8 h
  9 i
 10      zone "$zone" in {
 12          type master;
 13          file "/etc/bind/db.$zone";
 14   };
 15 k
 16 l
 17 m

谢谢你,乔

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-02-04 01:01:16

使用sed

代码语言:javascript
复制
sed -i -e '10a\
new stuff' file

使用bash

代码语言:javascript
复制
IFS=$'\n'
i=0
while read -r line; do
    i=$((i+1))
    if test $i -eq 10; then
        echo "new stuff"
    else
        echo "$line"
    fi
done <file >file.tmp
mv file.tmp file

请注意,我不太确定您是指插入在第10行还是在第11行,所以请再次检查我在上面写10的位置。您可能希望9用于sed命令,11用于bash版本。

perl中,您可以使用$NR变量。

代码语言:javascript
复制
open FILEHANDLE, "<file";
while (<FILEHANDLE>) {
    if ($NR == 10) {
        # do something
    }
}

awk,它是NR

代码语言:javascript
复制
awk 'NR != 10 { print }
NR == 10 { print "Something else" }' file

但是请注意,您可以找到并替换空行。

代码语言:javascript
复制
sed -i -e 's/^$/replacement text/' file
票数 8
EN

Stack Overflow用户

发布于 2011-02-04 01:01:20

你可以这么做:

代码语言:javascript
复制
head -10 fileA > fileB; echo "new text" >> fileB;

请注意,这比使用sed要快得多。

票数 2
EN

Stack Overflow用户

发布于 2011-02-04 01:07:27

使用sed:

代码语言:javascript
复制
sed '10 s/^/text' file >file.new && mv file.new file

与格尼丝:

代码语言:javascript
复制
sed -i '10 s/^/text' file

用awk:

代码语言:javascript
复制
awk 'NR==10 {$0="text"} 1' file >filen.new && mv file.new file
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4893500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档