2016-12-20 12 views
0

"'"という文字列を複数のファイルに特殊文字として挿入したいとします。私が挿入したいすべてのファイルには、その後にINSERTを実行する行があります。 LOAD_FILE
拒否されたデータ:INSERT後REJECT_PATH
...
ファイル:LOCAL FROM
...
SED:特殊文字を含む文字列を挿入する

例:INSERTの前に

ファイル
.. 。
FROM LOCAL:LOAD_FILE
DELIMITER AS '|'
拒否されたデータ:REJECT_PATH
...

私は多くのSEDのコマンドを書き留めてみましたが、彼らは、エラーを生成しています。そのうちの一つは、次のとおりです。

'LOAD_FILE/A /区切り文字として\' \ sedの

| \ '/ G' SOURCE> DESTINATION

答えて

0

囲む二重引用符を使用する:

sed "/FROM LOCAL :LOAD_FILE/s//&\nDELIMITER AS '|'/" file 

または単一引用符(より安全)不要な変数の展開を避けるために:それを置くの

sed '/FROM LOCAL :LOAD_FILE/s//&\nDELIMITER AS '"'|'"'/' file 
+0

がうまく働いたおかげでたくさんの.. :) –

1
awk -v line='DELIMITER AS '"'|'"'' '1; /LOAD_FILE/{print line }' input 
FROM LOCAL :LOAD_FILE 
DELIMITER AS '|' 
REJECTED DATA :REJECT_PATH 
0

これは(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 
関連する問題