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