我有一个文件,我从其他文件中提取字符串。 问题是一些提取的字符串在我们需要删除的末尾有额外的数据,因为有些格式化。 请问我该如何减少这个:
eqwerty&entryPoint=main&something=1238094007035&firstName=Isaac&protocol=http
就是这样:
eqwerty
(“&”之前的第一个字符串?
答案 0 :(得分:1)
使用BASH字符串操作:
s='eqwerty&entryPoint=main&something=1238094007035&firstName=Isaac&protocol=http'
echo "${s%%&*}"
<强>输出:强>
eqwerty
答案 1 :(得分:1)
cut -f 1 -d '&' filename
也可以。
>>>echo 'eqwerty&entryPoint=main&something=1238094007035&firstName=Isaac&protocol=http' | cut -f 1 -d '&'
eqwerty
答案 2 :(得分:0)
通过sed
运行它,如下所示:
sed -e 's:&.*::' <yourlogfile>
如果要在适当的位置修改文件,请添加-i
标志
答案 3 :(得分:0)
如果使用awk
,可能会有所帮助:
awk -F'&' '{print $1}' file
eqwerty
如果将awk's
字段分隔符设置为要删除的字符,则可以将所需的部分设为$ 1
awk '{sub(/&.*/,""); print}' file
eqwerty
使用gsub()
将其替换为空字符串