如何使用bash删除“”之间的空白空间
这种格式的txt
"service blabla 1" 5.456
"service blabla 2" 456
我只需要删除“”之间的空白空间
"serviceblabla1" 5.456
"serviceblabla2" 456
我有这个命令
sed 's/ //g'
结果:
"serviceblabla2"456
回答
在awk带有显示示例的GNU中,请尝试以下awk代码。
awk -v RS='"[^"]*"' '{gsub(/[[:space:]]+/,"",RT);ORS=RT} 1' Input_file
说明:设置RS为"[^"]*"从中获取值",直到下一处"。然后删除其值中的空格以匹配 OP 的要求。最后打印线。
上面的代码将在终端上打印数据,如果您想就地保存到 Input_file 中,请尝试以下命令。
awk -v RS='"[^"]*"' '{gsub(/[[:space:]]+/,"",RT);ORS=RT} 1' Input_file > temp && mv temp Input_file