Использование 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
выше.Возможно, вы захотите 9
для команды sed
или 11
для версии bash
.
В 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