Одна из возможностей - отфильтровать строки через awk. Если список строк, которые нужно изменить, невелик, передайте его awk в командной строке.
awk <original.txt >modified.txt -v lines="$(cat lines-to-change.txt)" '
BEGIN {split(lines, a); for (i in a) change[a[i]]=1}
NR in change {$0 = "Un" $0} # or $0 = "UnKnown"
1
'
Если количество строк, которые нужно изменить, очень мало, а файл, который нужно изменить, очень большой, sed может быть быстрее. С помощью sed вам нужно создать сценарий, содержащий замену, применяемую к каждой строке.
sed "$(<lines-to-change.txt sed 's/$/s:^:Un:/')" <original.txt >modified.txt
Если необходимо изменить значительную часть строк, предыдущие два подхода приведут к ограничению длины командной строки. Вот модифицированный подход с awk, который читает два файла параллельно. Если lines-to-change.txt
уже отсортирован, вы можете использовать getline n <"lines-to-change.txt"
вместо "sort -n lines- to-change.txt "| getline n
.
awk <original.txt >modified.txt '
BEGIN {"sort -n lines-to-change.txt" | getline n}
NR==n {$0 = "Un" $0; n = 0; "sort -n lines-to-change.txt" | getline n}
1
'
Итак, необходимые пакеты находятся в /run/install/repo/Packages
К сожалению, зависимости занимают много места, и поэтому, вероятно, поэтому yum не устанавливается на работающий USB-накопитель по умолчанию.
Можно установить yum таким образом, так как все зависимости должны находиться в указанном выше расположении.
Вы можете установить его командой rpm
:
rpm -i https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm
Можно попробовать установить только yum
из rpm тем же способом:
rpm -i http://your_centos_mirror/7/os/x86_64/Packages/yum-3.4.3-161.el7.centos.noarch.rpm