【发布时间】:2017-11-14 19:24:30
【问题描述】:
我正在尝试替换多行中的字符串。已经很晚了,我变得焦躁不安,也许有人更愿意为一些 SO 点试一试。我要替换的字符串是来自下面 SQL 的“STORED AS TEXTFILE”...
PARTITIONED BY(load string, date string, source_file string)
STORED AS TEXTFILE
LOCATION '${staging_directory}/${tablename}';
让它看起来像......
PARTITIONED BY(load string, date string, source_file string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '${staging_directory}/${tablename}';
所以我的表达是
:%s/)\nSTORED AS TEXTFILE\nLOCATION '/)\rROW FORMAT DELIMITED \rFIELDS TERMINATED BY ',' \rSTORED AS TEXTFILE \rLOCATION '/g
在文件中工作(使用 vim),但我无法使用一个命令处理目录中的所有文件。到目前为止我已经尝试过......
sed -i "s/)\nSTORED AS TEXTFILE\nLOCATION '/)\rROW FORMAT DELIMITED \rFIELDS TERMINATED BY ',' \rSTORED AS TEXTFILE \rLOCATION '/g"
...我还尝试了上述语句,所有空格都已转义。请帮忙!
【问题讨论】:
标签: regex linux bash sed spaces