Как распечатать и вставить переменную в начало файла в Unix?

sed '/<string>/s/^/<comment_char>/' <file>

/<строка>/ работает со строками, соответствующими <строка>. ^ действует в начале строки и вставляет символ комментария.

Как я понял, вы хотите прочитать IP-адрес из файла. Тогда вы можете использовать следующий скрипт. Использование: скрипт <файл_содержащий_IP_адрес> <файл_к_операции_на>

#!/bin/sh

ip_file="$1"
file_to_change="$2"
comment='# '

ip=$(sed 's/\./\\./g' "$ip_file")
temp_file=$(mktemp)

sed "/$ip/s/^/$comment/" "$file_to_change" > "$temp_file" &&
    mv -- "$temp_file" "$file_to_change"

exit 0

Если скрипт не нужно переносить, вы также можете использовать переключатель GNU sed -i.

0
18.11.2018, 11:50
2 ответа
Length=$(wc -l < Final.txt)
echo $Length
sed -i "1 i\<records>$Length</records>" Final.txt
0
28.01.2020, 04:29
sed -i "1 i\<records>$(wc -l Final.txt < Final.txt)</records>" Final.txt
  1. No necesita una variable intermedia.

  2. Edite :Por usuario kamaraj y por usuario DonChrissti comentó y eliminó la afirmación de que necesita el comando cut, o alguna otra forma de analizar el nombre del archivo que wcgenera junto con el número de líneas. Una simple redirección de E/S oculta eso de wc, por lo que sin saber qué archivo se está procesando, no tiene nada que imprimir.

0
28.01.2020, 04:29

Теги

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