我有一个文本文件,其中每一行都包含一个 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