sed¶
. 是metacharacter,需要转义¶
在 sed 替换 . (点)时候,需要在 . 点符号前面加上:
\
做转义
通过SSH将本地Markdown文件上传服务器使用pandoc转换reStructuredText文件下载¶
filename=$1
# sed 转换 "test.txt" 到 "text txt"
read file ext <<< $(echo $filename | sed 's/\./ /g')
cat $filename | ssh zcloud-r pandoc - --from markdown --to rst -s > ${file}.rst
删除字符串的最后n个字符¶
使用sed也可以类似实现,例如删除最后一个字符:
var2=`echo $var2 | sed 's/.$//'`
删除最后2个字符:
var2=`echo $var2 | sed 's/..$//'`
删除文件的最后一个字符¶
注意,是删除文件的最后一个字符,而不是每一行的最后一个字符。这里有一个小技巧:
sed '$ s/.$//' sample.txt
请注意,这里 $ 代表最后一行,所以才能实现只删除最后一行的最后一个字符,也就是文件的最后一个字符。
不要和:
sed 's/.$//' sample.txt
混淆,这是删除每一行的最后一个字符
将分隔符替换为换行¶
sed 可以直接使用 \n 作为换行符号的字符替换,例如,需要将文档中的 , 替换为换行符:
sed 's/,/\n/g' sample.txt