В Bash, как я добавляю строку после каждой строки в файле?

Как я добавляю строку после каждой строки в файле с помощью удара? Это может быть сделано с помощью команды sed, раз так как?

105
задан slhck 30 October 2011 в 15:05
поделиться

3 ответа

Если ваш sed позволяет редактировать на месте через параметр -i:

sed -e 's/$/string after each line/' -i filename

Если нет, вам придется сделать временный файл:

typeset TMP_FILE=$( mktemp )

touch "${TMP_FILE}"
cp -p filename "${TMP_FILE}"
sed -e 's/$/string after each line/' "${TMP_FILE}" > filename
172
ответ дан 24 November 2019 в 04:00
поделиться

Sed немного уродлив, вы можете сделать это элегантно, вот так:

hendry@i7 tmp$ cat foo 
bar
candy
car
hendry@i7 tmp$ for i in `cat foo`; do echo ${i}bar; done
barbar
candybar
carbar
-8
ответ дан 24 November 2019 в 04:00
поделиться

Если она у вас есть, утилита lam (ламинат) может это сделать, например:

$ lam filename -s "string after each line"
7
ответ дан 24 November 2019 в 04:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: