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
.
Length=$(wc -l < Final.txt)
echo $Length
sed -i "1 i\<records>$Length</records>" Final.txt
sed -i "1 i\<records>$(wc -l Final.txt < Final.txt)</records>" Final.txt
No necesita una variable intermedia.
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 wc
genera 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.