linux用shell替换文本问题
将题目中在括号内的 a-n 提取出来和题号对应构成一张表保存到文件1, 如
1, a
2, ab
3, abc
.
.
.
并删除括号内的答案(在字母a-n之间),保存成文件2,
“题目”的格式如下:
1. xxxx( a-n )
A.
B.
2. xxx( a-n )
A.
B.
.
.
.
“题目”以数字开始,以点分割。两个题目间以空行分割。
如何shell编程实现?
[解决办法]
下面是直接输出,你要输出到文件用一个重写向就可以了:
- C# code
[nicenight@CSDN ~]$ sed -nr '/^[0-9]/!b; s/^([0-9]+\.).*\([ ]*([a-z]+)[ ]*\)/\1 \2/; p' file.txt1. a2. n[nicenight@CSDN ~]$ sed -nr '/^[0-9]/!bq; s/^([0-9]+\..*\([ ]*)[a-z]+([ ]*\))/\1 \2/; :q; p' file.txt1. xxxx( )A.B.2. xxx( )A.B.