Bash 将文件名作为标题添加到文本文件中

Bash 将文件名作为标题添加到文本文件中,bash,shell,Bash,Shell,有没有一种简单的方法可以将文件名作为头添加到该文件中 比如说 file.txt包含: blablabla blablabla 期望输出: file.txt blablabla blablabla 您也可以使用sed sed -i "1iyourfile.txt" yourfile.txt 示例: $ F="yourfile.txt" $ sed -i "1i$F" $F 您也可以使用sed sed -i "1iyourfile.txt" yourfile.txt 示例: $ F="yo

有没有一种简单的方法可以将文件名作为头添加到该文件中

比如说

file.txt包含:

blablabla
blablabla
期望输出:

file.txt
blablabla
blablabla

您也可以使用
sed

sed -i "1iyourfile.txt" yourfile.txt
示例:

$ F="yourfile.txt"
$ sed -i "1i$F" $F

您也可以使用
sed

sed -i "1iyourfile.txt" yourfile.txt
示例:

$ F="yourfile.txt"
$ sed -i "1i$F" $F

这是一个单行程序,即使有巨大的文件,它也会运行得非常快,可以轻松地用于整个目录的自动化过程

x="$(basename test.txt)" && sed -i "1i$x" $x

您可以直接使用文件名(在本例中为text.txt),也可以在循环中使用变量来遍历整个目录。

这里有一个单行程序,它可以非常快速地运行,即使文件很大,也可以轻松地用于对整个目录进行自动化处理

x="$(basename test.txt)" && sed -i "1i$x" $x

您可以直接使用文件名(本例中为text.txt),也可以在循环中使用一个变量来遍历整个目录。

如果您确实需要一行程序

x="$(basename test.txt)" && sed -i "1i$x" $x
perl -pi -E 'say "file.txt" if $.==1' file.txt 

如果你真的想要一个班轮

perl -pi -E 'say "file.txt" if $.==1' file.txt 

要使其成为一行:…>$$。tmp&&mv$$.tmp filename为什么脚本必须是一行程序?@Barmar它不一定是一行程序,但是有很好的理由在两个语句之间包含
&&
。@Barmar或在第1行附加
| | exit
,原因相同。要使它成为一行程序:…>$。tmp&&mv$$.tmp filename为什么脚本必须是一行程序?@Barmar它不一定是一行程序,但是有很好的理由在两个语句之间包含
&
。@Barmar或在第1行附加
| | exit
,原因相同。