我有一个包含换页的打印输出文件(uncomp.txt)。我尝试根据\f正则表达式匹配将单个文档拆分成多个文档,并输出具有纪元时间的文件。
我试过了:
$ csplit --prefix=$(date +%s) -s /tmp/uncomp.txt "/%\f%/+1" "{*}"还有这个:
$ csplit --prefix=$(date +%s) -s /tmp/uncomp.txt "/\f/+1" "{*}"甚至是这样:
$ csplit -s --prefix=$(date +%s) /tmp/uncomp.txt /\f/ {*}但每次我都会得到一个单独的文件。很明显它没有提取\f正则表达式...我做错了什么?
发布于 2016-04-29 04:05:38
bash解决方案
看起来csplit在它的正则表达式中需要一个文本表单提要。实现这一点的一种方法是使用bash的$'...'构造:
csplit --prefix=$(date +%s) -s uncomp.txt $'/\f/+1' "{*}"POSIX解决方案
如果你没有bash,你可以使用printf
csplit --prefix=$(date +%s) -s uncomp.txt "/$(printf "\f")/+1" "{*}"或者,等效地:
csplit --prefix=$(date +%s) -s uncomp.txt "$(printf "/\f/+1")" "{*}"发布于 2017-07-25 18:07:31
我试着这样做,使用the standalone bash shell for windows
csplit -z --prefix=Stored dumpstored.sql /^L/ "{*}"我通过按CTRL+L获得了^L,它对我很有效。
https://stackoverflow.com/questions/36923666
复制相似问题