你能告诉我我(Linux用户)如何在文本文件的最后一行添加文本吗?
到目前为止我有这个:
APPEND='Some/Path which is/variable'
sed '${s/$/$APPEND/}' test.txt
Run Code Online (Sandbox Code Playgroud)
它有效,但$ APPEND添加了变量内容.我知道这个的原因是我用于sed的单引号(').但是当我简单地替换'by'时,文件中没有添加任何文本.
你知道解决方案吗?我并不坚持使用sed它,它只是我脑海中的第一个命令行工具.您可以使用您喜欢的每个标准命令行程序.
编辑:我刚试过这个:
$ sed '${s/$/'"$APPEND/}" test.txt
sed: -e Ausdruck #1, Zeichen 11: Unbekannte Option für `s'
Run Code Online (Sandbox Code Playgroud)
附加数据的最简单方法是使用文件重定向。
echo $APPEND >>test.txt
Run Code Online (Sandbox Code Playgroud)
使用此作为输入:
1 a line
2 another line
3 one more
Run Code Online (Sandbox Code Playgroud)
和这个bash脚本:
#!/bin/bash
APPEND='42 is the answer'
sed "s|$|${APPEND}|" input
Run Code Online (Sandbox Code Playgroud)
输出:
1 a line42 is the answer
2 another line42 is the answer
3 one more42 is the answer
Run Code Online (Sandbox Code Playgroud)
使用awk的解决方案:
BEGIN {s="42 is the answer"}
{lines[NR]=$0 }
END {
for (i = 1; i < NR; i++)
print lines[i]
print lines[NR], s
}
Run Code Online (Sandbox Code Playgroud)