如何使用 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;) 查找行尾 ($) 並將其替換為所需的字串。