Как добавить текст переменной в последнюю строку файла через командную строку?
не могли бы вы рассказать мне, как я (пользователь Linux) могу добавить текст в последнюю строку текстового файла?
у меня это до сих пор:
APPEND='Some/Path which is/variable'
sed '${s/$/$APPEND/}' test.txt
он работает,но $APPEND добавляется к содержимому переменной. Я знаю, что причина этого-цитата паленой ( ' ), которую я использовал для sed. Но когда я просто заменяю "на", текст не добавляется в файл.
- вы знаете решение для этого? Я не настаиваю на использовании sed
, это только первый инструмент командной строки, которая пришло мне в голову. Вы можете использовать любую стандартную программу командной строки.
edit: я только что пробовал это:
$ sed '${s/$/'"$APPEND/}" test.txt
sed: -e Ausdruck #1, Zeichen 11: Unbekannte Option für `s'
5 ответов
используя это как входной сигнал:
1 a line
2 another line
3 one more
и этот bash-скрипт:
#!/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]= }
END {
for (i = 1; i < NR; i++)
print lines[i]
print lines[NR], s
}
добавить точку с запятой после команды замены sed!
(
set -xv
APPEND=" word"
echo '
1
2
3' |
sed '${s/$/'"${APPEND}"'/;}'
#sed "${s/$/${APPEND}/;}"
)