我想在多个文件中删除一个特殊字符串“*'**”。我想插入的所有文件都有一行,在这行之后我想执行我的插入。例如:
上传前文件:
……从文件:LOAD_FILE被拒绝的数据:RESISTANCE_PATH……
删除后文件:
……从文件:LOAD_FILE
定义为“|'
被拒绝的数据:RESISTANCE_PATH...我试过写下许多SED命令,但它们都产生错误。其中之一是:sed 'LOAD_FILE/a/ DELIMITER AS'|'/g'源>目的地
ghg1uchk1#
awk -v line='DELIMITER AS '"'|'"'' '1; /LOAD_FILE/{print line }' input FROM LOCAL :LOAD_FILE DELIMITER AS '|' REJECTED DATA :REJECT_PATH
b4lqfgs42#
使用双引号:
sed "/FROM LOCAL :LOAD_FILE/s//&\nDELIMITER AS '|'/" file
或单引号(更安全,以避免不必要的变量扩展):
sed '/FROM LOCAL :LOAD_FILE/s//&\nDELIMITER AS '"'|'"'/' file
5kgi1eie3#
这可能对你有用(GNU sed):
sed '/LOAD_FILE/aDELIMITER AS '\'\|\' file
这将在LOAD_FILE上的匹配之后追加行DELIMITER AS \'\|\'注意:sed命令分为两部分,/LOAD_FILE/aDELIMITER AS与\'\|\'连接在一起如果您喜欢:
LOAD_FILE
DELIMITER AS \'\|\'
/LOAD_FILE/aDELIMITER AS
\'\|\'
sed 's/LOAD_FILE/&\nDELIMITER AS '\'\|\''/' file
laximzn54#
换句话说:sed -e ':a;N;$!ba;s/LOAD_FILE\n/LOAD_FILE\nDELIMITER AS \x27|\x27\n/g'我使用的语法:How can I replace a newline (\n) using sed?
sed -e ':a;N;$!ba;s/LOAD_FILE\n/LOAD_FILE\nDELIMITER AS \x27|\x27\n/g'
jv2fixgn5#
请使用下面的命令在单词中间添加字符。sed的/^../&./'文件名使用-i选项更新文件例如:- sed -i的/^../&./'文件名
5条答案
按热度按时间ghg1uchk1#
b4lqfgs42#
使用双引号:
或单引号(更安全,以避免不必要的变量扩展):
5kgi1eie3#
这可能对你有用(GNU sed):
这将在
LOAD_FILE
上的匹配之后追加行DELIMITER AS \'\|\'
注意:sed命令分为两部分,
/LOAD_FILE/aDELIMITER AS
与\'\|\'
连接在一起如果您喜欢:
laximzn54#
换句话说:
sed -e ':a;N;$!ba;s/LOAD_FILE\n/LOAD_FILE\nDELIMITER AS \x27|\x27\n/g'
我使用的语法:
How can I replace a newline (\n) using sed?
jv2fixgn5#
请使用下面的命令在单词中间添加字符。
sed的/^../&./'文件名
使用-i选项更新文件
例如:- sed -i的/^../&./'文件名