如何追加到檔案的第一行?

如何追加到檔案的第一行?

如何使用 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 行。如果你想立即更改文件,請使用-i 參數,無論如何,請謹慎使用。

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

awk 更強大,但沒有 -i 參數來立即更改檔案。

答案3

你可以這樣做

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

這將獲取文件,僅查看第一行 (1!b;) 查找行尾 ($) 並將其替換為所需的字串。

相關內容