Ответ 1
Использовать замену sed: sed 's/"//g'
s/X/Y/
заменяет X на Y.
g
означает, что все вхождения должны быть заменены не только первым.
У меня есть вывод команды, из которого я хочу удалить двойные кавычки "
.
Regex:
strings -a libAddressDoctor5.so |\
grep EngineVersion |
awk '{if(NR==2)print}' |
awk '{print$2}'
Выход:
EngineVersion="5.2.5.624"
Я хотел бы знать, как удалить нежелательных персонажей с помощью awk
или sed
.
Использовать замену sed: sed 's/"//g'
s/X/Y/
заменяет X на Y.
g
означает, что все вхождения должны быть заменены не только первым.
Используя только awk, вы могли бы сделать (я также сократил некоторые ваши трубы):
strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'
Я не могу проверить это для вас, потому что я не знаю вашего точного ввода, но работает следующее:
echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'
Смотрите также этот вопрос по удалению одинарных кавычек.
tr
может быть более кратким для удаления символов, чем sed
или awk
, особенно если вы хотите удалить другие символы из строки.
Удаление двойных кавычек:
echo '"Hi"' | tr -d \"
# Produces Hi without quotes
Снятие различных видов скобок:
echo '[{Hi}]' | tr -d {}[]
# Produces Hi without brackets
-d
означает "удалить".