我有一个大文本文件,格式如下
####
Some Question 1
answer 1
####
####
Some Question 2
answer 2
some answer 2
another answer 2
####
####
Some Question 3
answer 3
some answer 3
####
在我的项目中,我需要:
1.找到两个字符之间的行,我已经通过(####)(.+?)(####)
找到了它
2.在####之后的第一行末尾加上一个问号
3.在第二行之前和第三行之前加斜杠
得到像这样的结果
Some Question 1 ? answer1
Some Question 2 ? answer 2 / some answer 2 / another answer 2
Some Question 3 ? answer 3 / some answer 3
正如我所提到的,我已经标记了文本并制作了3组\ 1& 3 #### \ 2中间的行,如何分隔这些行并进行所需的更改?
答案 0 :(得分:0)
我建议你使用从命令行界面启动的脚本,在记事本之外完成这项工作。
如果您的系统上安装了 awk ,请编写以下脚本,例如 script.awk :
#!/usr/bin/awk -f
/^####$/ { if (q != "") {
print q a
}
q = "";
a = "";
next
}
# other lines
{ if (q == "") {
q = $0 " ? "
} else {
if (a == "") {
a = $0;
next
} else {
a = a " / " $0 ;
next
}
}
}
假设您的输入位于文件 input.txt 中,您可以从发出命令行运行此脚本:
./script.awk input.txt
或:
awk -f script.awk input.txt
我假设您可以在类Unix环境中工作。