我想在多个文件中插入一个带有" '"的字符串作为特殊字符。我想插入的所有文件都有一个行,然后我要执行插入。
eg:
文件插入之前:
...
来自本地:load_file
拒绝数据:reculd_path
...
插入后文件:
...
来自本地:load_file
定界符为'|'
拒绝数据:reculd_path
...
我尝试写下许多sed命令,但它们正在产生错误。其中之一是:
sed'load_file/a/dimiter as ' | '/g'源>目标
awk -v line='DELIMITER AS '"'|'"'' '1; /LOAD_FILE/{print line }' input
FROM LOCAL :LOAD_FILE
DELIMITER AS '|'
REJECTED DATA :REJECT_PATH
使用周围的双引号:
sed "/FROM LOCAL :LOAD_FILE/s//&nDELIMITER AS '|'/" file
或单个引号(避免有多余的变量扩展更安全):
sed '/FROM LOCAL :LOAD_FILE/s//&nDELIMITER AS '"'|'"'/' file
这可能对您有用(gnu sed):
sed '/LOAD_FILE/aDELIMITER AS ''|' file
这将在LOAD_FILE
上的比赛之后附加DELIMITER AS '|'
行
n.b。SED命令分为两个部分,/LOAD_FILE/aDELIMITER AS
与'|'
如果您喜欢:
sed 's/LOAD_FILE/&nDELIMITER AS ''|''/' file
另一种放置它的方式:
sed -e ':a;N;$!ba;s/LOAD_FILEn/LOAD_FILEnDELIMITER AS x27|x27n/g'
关于我使用的语法:
如何使用sed?