我需要一个linux bash脚本,它可以替换name =“这是一个测试”中的空格。
示例:
<input name="this is a test" id="testing 1 2 3" />
会改为:
<input name="thisisatest" id="testing 1 2 3" />
编辑:脚本必须能够匹配双引号之间的任何内容。可能是这样的:
<input name="THIS STRING WILL VARY" id="testing 1 2 3" />
有什么想法吗?
答案 0 :(得分:3)
使用Python - 获取HTML文件,并删除input
属性等于name
的{{1}}代码中的空格,您可以使用:
this is a test
回应:
我忘了说字符串“这是一个测试”可以是任何东西
您只需过滤掉所有from bs4 import BeautifulSoup
with open('input') as fin, open('output', 'w') as fout:
soup = BeautifulSoup(fin.read())
for tag in soup.find_all('input', {'name': 'this is a test'}):
tag['name'] = tag['name'].replace(' ', '')
fout.write(str(soup))
属性的input
标记并应用您想要的任何逻辑 - 以下内容将从任何名称属性中删除空格:
name
答案 1 :(得分:0)
>>> name = 'this is a test'
>>> ''.join(name.split())
'thisisatest'
答案 2 :(得分:0)
您可以使用sed
:
foo='<input name="this is a test" id="testing 1 2 3" />'
echo $foo | sed 's/this is a test/thisisatest/'
如果要在文件中执行此操作并保存,可以执行以下操作:
sed 's/this is a test/thisisatest/' filename > filename
答案 3 :(得分:0)
这是一个awk单行
awk '
BEGIN {FS=OFS="\""}
{for (f=2; f<=NF; f++) if ($(f-1) ~ /name=$/) gsub(/ /, "", $f)}
1
' file
它使用双引号作为字段分隔符。因此,带引号的字符串将是奇数字段。