bash shell脚本中如何将新内容添加到文件前面
时间:2019-11-20 08:53:01 来源:igfitidea点击:
问题
在Linux中,我们可以使用>>运算符将文本追加到文件中,但是都是追加到文件末尾,如何将文本追加到文件的前面?
在Linux bash shell中如何将文本添加到文件的开头?
解决方案
bash或任何其他shell中,没有类似>>的运算符可以将内容追加到文件开头。
但是可以使用ed,sed,perl,awk等命令将文本添加到文件的开头。
使用临时文件进行处理
下面是使用临时文件添加文本的简单解决方案:
echo 'line 1' > /tmp/newfile echo 'line 2' >> /tmp/newfile cat yourfile >> /tmp/newfile cp /tmp/newfile yourfile
或者:
echo "text"|cat - yourfile > /tmp/out && mv /tmp/out yourfile echo "theitroad"|cat - yourfile > /tmp/out && mv /tmp/out yourfile
使用echo将文本添加到文件开头
无需创建临时文件。语法为:
echo -e "Line-1\n$(cat input)" > input cat input
要添加多行:
echo -e "Line-1\nLine-2\n$(cat input)" > input cat input
使用sed命令将文本添加文件前面
使用sed命令将文本添加到文件前面:
sed '1s;^;Text1\n;' file > file ## GNU/sed 语法 ## sed -i '1s;^;Text1\n;' file
shell脚本如何在文件的每一行开头添加字符串?
awk命令语法为:
awk '{print "Text1"sed -i -e 's/^/Text1/' file}' file awk '{print Text1\n"$ cat data.txt line1 line2 line3 hello}' file.txt > output.txt
使用sed语法为:
$ sed -i -e 's/^/Text1/' data.txt $ cat data.txt Text1line1 Text1line2 Text1line3 Text1hello
示例
##代码##替换:
##代码##