Если вы знаете, где находится rpm, вы можете установить его напрямую через yum, не загружая его.
Например:
yum install http://something.com/package1.rpm
Ваш sed
трубопровод немного задом наперед:
sed 's/w/f/g' | sed 's/f/zzzzz/g' <<< "$line"
Это приведет к тому, что первый sed
будет читать из стандартного ввода, т. е. ваших строк 456
и 789
, а второй sed
будет читать$line
(123
). Канал остановит выход первого sed
от получения куда-либо , поскольку второй sed
не читает из него.
Я предполагаю, что вы хотите, чтобы первыйsed
читал строку, а второй sed
считывал вывод первого.
Вы бы сделали это либо с
{ sed 's/w/f/g' | sed 's/f/zzzzz/g'; } <<< "$line"
или
sed 's/w/f/g' <<<"line" | sed 's/f/zzzzz/g'
Также обратите внимание, что в этом случае вы можете объединить два вызова sed
в один:
sed 'y/w/f/; s/f/zzzzz/g' <<<"$line"
или,
sed -e 'y/w/f/' -e 's/f/zzzzz/g' <<<"$line"
Я дополнительно изменил первое выражение, чтобы использовать команду y
, которая заменяет отдельные символы во всей строке.
Однако очень редко рекомендуется вызывать sed
для отдельных строк ввода. Если вам не нужен вывод echo
, ваш скрипт можно упростить до
#!/bin/sh
sed 'y/w/f/; s/f/zzzzz/g'
или даже
#!/usr/bin/sed -f
y/w/f/
s/f/zzzzz/g