如何附加到文件的第一行?

如何附加到文件的第一行?

如何使用 sed 将文件的第一行替换为第一行和一些附加文本?例如,如何将-foo仅包含一行的内容附加到文件中。

testfile内容开始:

some-text

testfile内容结束:

some-text-foo

答案1

如何附加到文件的第一行?

如何使用 sed 将文件的整个第一行替换为第一行和一些附加文本?

这是另一种方法,在 Windows 上使用 SED 将字符串附加到行号 1 的末尾,然后将其转换回 EOL 字符的 DOS 格式,即 CRLF 而不是 LF...

第一个命令(仅将字符附加-foo到第一行的末尾)

SED -i "1 s|$|-foo|" "C:\Path\testfile.txt"

第二条命令(将 EOL 转换回回车换行符)

SED -i "s/$/\r/" "C:\Path\testfile.txt"

答案2

sed '1{s/$/-foo/}' file

1 表示首行,你可以用它num,num来指定范围,例如 3,5 表示将第 3 行改为第 5 行。s 表示替换,$ 表示行尾。如果你想立即更改文件,请使用-i 参数,无论如何,请谨慎使用。

awk 'FNR==1{print $0 "-foo";}' file(s)

awk 功能更强大,但没有 -i 参数来立即更改文件。

答案3

你可以这样做

sed -i '1!b;s/$/\-foo/g' testfile

这将获取文件,仅查看第一行 (1!b;),查找行尾 ($) 并将其替换为您想要的字符串。

相关内容