gpt4 book ai didi

perl - 如何写到第 10 行?

转载 作者:行者123 更新时间:2023-12-04 22:16:18 25 4
gpt4 key购买 nike

我需要一个脚本,它可以从第 10 行开始将文本写入现有文件。它是一个空行,因此它不会是查找/替换。最好是在 bash 中,但是终端可以解释的任何内容都可以正常工作。

RE-EDITED:

抱歉,但在我测试后仍有一些问题......认为这与我想写入文件的内容有关。也许这会让它更容易..
  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

提前致谢,

最佳答案

使用 sed :

sed -i -e '10a\
new stuff' file

使用 bash :
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以上。您可能想要 9sed命令或 11bash版本。

perl ,您可以使用 $NR多变的。
open FILEHANDLE, "<file";
while (<FILEHANDLE>) {
if ($NR == 10) {
# do something
}
}

而在 awk ,是 NR .
awk 'NR != 10 { print }
NR == 10 { print "Something else" }' file

但请注意,您可以找到并替换空行,例如
sed -i -e 's/^$/replacement text/' file

关于perl - 如何写到第 10 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com