【发布时间】:2015-03-04 18:58:07
【问题描述】:
我正在编写一个 BASH 脚本,它接收一个本地文件,并使用一个奇怪的分隔符将其拆分为多个文件。
我要使用的分隔符是:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
分隔每条记录。
【问题讨论】:
-
查看
csplit实用程序。
我正在编写一个 BASH 脚本,它接收一个本地文件,并使用一个奇怪的分隔符将其拆分为多个文件。
我要使用的分隔符是:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
分隔每条记录。
【问题讨论】:
csplit 实用程序。
如果您的文件在自己的行中有分隔符,您可以这样做:
delim="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
i=1
while read line
do
if [ "$line" == "$delim" ]
then
i=$((i+1))
else
echo $line >>your_file_$i
fi
done <your_file
如果您的文件不在此配置中,则表示您有内联分隔符。因此,您只需使用 sed "s/${delim}/\r${delim}\r/g" 即可。
【讨论】: