删除文本文件中的特殊字符

删除文本文件中的特殊字符

我有一个文本文件,其中每一行都包含一个 sql 查询。

对于每一行,我需要删除一些特殊字符。

说明:如果我有:

select * from Users;
insert into Users values ('UR01','Kim','Director');

结果文件必须匹配:

select * from Users
insert into Users values UR01 Kim Director

答案1

您可以使用sed

sed -e 's/[;,()'\'']/ /g;s/  */ /g' input.sql > output.txt

或者,如果您想指定保留哪些字符:

sed -e 's/[^a-zA-Z*0-9]/ /g;s/  */ /g' input.sql > output.txt

答案2

使用tr

$ tr -s "()',;" " " < data
select * from Users 
insert into Users values UR01 Kim Director 

答案3

使用 awk:

awk '{gsub(/[;(),'\'']/," "); gsub(/  */," "); print}' your_file

相关内容