使用awk或sed删除不需要的字符

时间:2011-11-04 11:27:01

标签: linux awk sed replace

我有一个命令输出,我想从中删除双引号"

正则表达式:

strings -a libAddressDoctor5.so |\
grep EngineVersion |
awk '{if(NR==2)print}' |
awk '{print$2}'

输出:

EngineVersion="5.2.5.624"

我想知道如何使用awksed删除不需要的字符。

3 个答案:

答案 0 :(得分:36)

使用sed的替换:sed 's/"//g'

s/X/Y/将Y替换为Y。

g表示应该替换所有事件,而不仅仅是第一个。

答案 1 :(得分:31)

使用awk你可以做(​​我也缩短了你的一些管道):

strings -a libAddressDoctor5.so | awk '/EngineVersion/ { if(NR==2) { gsub("\"",""); print $2 } }'

我无法为您验证,因为我不知道您的确切输入,但以下工作:

echo "Blah EngineVersion=\"123\"" | awk '/EngineVersion/ { gsub("\"",""); print $2 }'

有关删除单引号的信息,请参阅this question

答案 2 :(得分:3)

与删除sedawk相比,

tr更为简洁,尤其是当您想从字符串中删除不同的字符时。

删除双引号:

echo '"Hi"' | tr -d \"
# Produces Hi without quotes

卸下各种支架:

echo '[{Hi}]' | tr -d {}[]
# Produces Hi without brackets

-d代表“删除”。