Самое простое решение, о котором я могу подумать (учитывая, что строка string встречается только 1 раз в строке), также исправляет здесь попытку OP:
awk -F'common=' '{print $2}' Input_file
2-е решение: Использование sub
из awk
.
awk '{sub(/^common=/,"")} 1' Input_file
3-е решение: Использованиеmatch
из awk
.
awk 'match($0,/^common=/){print substr($0,RSTART+RLENGTH)}' Input_file
4-е решение: Использование простого sed
метода замены.
sed 's/^common=//' Input_file
5-е решение: Использование sed
:
sed 's/common=\(.*\)/\1/' Input_file
6-е решение: С использованием цикла while
оболочки, хотя он НЕ может быть быстрым, как вышеописанные решения, добавив его здесь в качестве варианта.
while IFS="=" read line1 line2
do
echo "$line2"
done < "Input_file"
7-е решение: Использование while
loop bash one вместе с заменой процесса.
while read line
do
echo "${line#*=}"
done < "Input_file"
Для всех выводов команды оберните их в common=$(above anyone command)
, чтобы сохранить выводв переменную с именем common
.