Bash 为什么在运行sed之后,我的文件中充满了extbar?
根据上的信息,我想准备一个用于上下文的文件。我需要做几个替换:Bash 为什么在运行sed之后,我的文件中充满了extbar?,bash,sed,Bash,Sed,根据上的信息,我想准备一个用于上下文的文件。我需要做几个替换: sed -i 's/\&/\\\&/g' ./File.csv sed -i 's/\#/\\\#/g' ./File.csv sed -i 's/\%/\\\percent/g' ./File.csv sed -i 's/\|/\\\textbar/g' ./File.csv sed -i 's/\$/\\\textdollar/g' ./File.csv sed -i 's/\_/\\\textunderscor
sed -i 's/\&/\\\&/g' ./File.csv
sed -i 's/\#/\\\#/g' ./File.csv
sed -i 's/\%/\\\percent/g' ./File.csv
sed -i 's/\|/\\\textbar/g' ./File.csv
sed -i 's/\$/\\\textdollar/g' ./File.csv
sed -i 's/\_/\\\textunderscore/g' ./File.csv
sed -i 's/\~/\\\textasciitilde/g' ./File.csv
sed -i 's/\{/\\\textbraceleft/g' ./File.csv
sed -i 's/\}/\\\textbraceright/g' ./File.csv
- 将
替换为\\\
- 将
替换为%
\percent
- 将
替换为|
\textbar
- 将
替换为$
\textdolar
- 用
替换\text下划线
\ucode>
- 将
替换为~
\textascitilde
- 将
替换为{
\textraceleft
- 将
替换为}
\textraceRight
sed -i 's/\&/\\\&/g' ./File.csv
sed -i 's/\#/\\\#/g' ./File.csv
sed -i 's/\%/\\\percent/g' ./File.csv
sed -i 's/\|/\\\textbar/g' ./File.csv
sed -i 's/\$/\\\textdollar/g' ./File.csv
sed -i 's/\_/\\\textunderscore/g' ./File.csv
sed -i 's/\~/\\\textasciitilde/g' ./File.csv
sed -i 's/\{/\\\textbraceleft/g' ./File.csv
sed -i 's/\}/\\\textbraceright/g' ./File.csv
不幸的是,当我运行这些脚本时,整个文件都变成了一堆奇怪的字母、数字,到处都是单词“extbar”
- 我怎样才能做这些替换品
- 为什么在运行这些命令后,“extbar”出现在我的文件中
- 这可能适合您:
cat <<\! >Village.sed
s/&/\\&/g
s/#/\\#/g
s/%/\\percent/g
s/|/\\textbar/g
s/\$/\\textdollar/g
s/_/\\textunderscore/g
s/~/\\textasciitilde/g
s/{/\\textbraceleft/g
s/}/\\textbraceright/g
!
sed -f Village.sed ./File.csv
这可能适合您:
cat <<\! >Village.sed
s/&/\\&/g
s/#/\\#/g
s/%/\\percent/g
s/|/\\textbar/g
s/\$/\\textdollar/g
s/_/\\textunderscore/g
s/~/\\textasciitilde/g
s/{/\\textbraceleft/g
s/}/\\textbraceright/g
!
sed -f Village.sed ./File.csv
使用四个反斜杠,而不是转义。它们被评估两次。下面是字符
\t
,后面是字符串'extbar'
(from\textbar)使用四个反斜杠代替转义符。它们被评估两次。接下来,替换字符为\t
,执行此操作时,后跟字符串'extbar'
(from\textbar)
sed -i 's/|/\\\textbar/g' ./File.csv
sed reads it as s/|/\\\textbar/g \\ becomes \ and \t becomes tab character.
试一试
或
当你这样做的时候
sed -i 's/|/\\\textbar/g' ./File.csv
sed reads it as s/|/\\\textbar/g \\ becomes \ and \t becomes tab character.
试一试
或