我有一个包含+ 1M行的大文本文件
并且在第45280525行有一个单词#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
struct Stack {
int data;
struct Stack *next;
};
struct Stack *CreateStack () {
return NULL;
}
int isEmptyStack(struct Stack *top) {
return (top == NULL);
}
void Push(struct Stack **top, int data) {
struct Stack *newNode = (struct Stack*) malloc(sizeof(struct Stack));
if(!newNode)
return;
newNode->data = data;
newNode->next = *top;
*top = newNode;
}
int Pop(struct Stack **top) {
struct Stack *temp;
int data;
if(isEmptyStack(*top)) {
printf("Empty Stack.\n");
return INT_MIN;
}
temp = *top;
data = (*top)->data;
*top = (*top)->next;
free(temp);
return data;
}
struct Queue {
struct Stack *S1;
struct Stack *S2;
};
struct Queue *CreateQueue() {
return NULL;
}
void EnQueue(struct Queue *Q, int data) {
Push(Q->S1, data);
}
int DeQueue(struct Queue *Q) {
if(!isEmptyStack(Q->S2)) {
return Pop(Q->S2);
}
else {
while(!isEmptyStack(Q->S1)) {
Push(Q->S2, Pop(Q->S1));
}
return Pop(Q->S2);
}
}
int main() {
struct Queue *Q = CreateQueue();
Q->S1 = Q->S2 = NULL;
EnQueue(Q, 1);
EnQueue(Q, 2);
EnQueue(Q, 3);
printf("%d ", DeQueue(Q));
printf("%d ", DeQueue(Q));
printf("%d ", DeQueue(Q));
return 0;
}
。我想删除之前的所有行。
如何使用Sublime Text做到这一点?
请注意,Notepad ++不适用于此文件。
感谢
答案 0 :(得分:2)
您可以使用menu > Goto > Goto Line...
或按 Ctrl + G 。
您可能正在寻找Mark
功能:
Edit > Mark > Set Mark
设置您的选择结束标记。Edit > Mark > Delete to Mark
否则,您可以将打开文件的代码编写为文本...删除您需要的行,保存并...关闭。
答案 1 :(得分:0)
有点像黑客攻击,只有在文本中至少有一种类型的括号没有使用时它才有效。
(
,[
或{
)打开一个左括号。)
,]
或}
)这可能是更好的方法,但它是我能想到的解决方案。
答案 2 :(得分:0)
如果您的文件太大而无法在Sublime Text中编辑,则可以在Linux命令行执行以下操作:
sed -ne '/johnd/,$p' myfile.txt > edited.txt
mv edited.txt myfile.txt
打印从匹配johnd
的一行到文件末尾的所有行。输出将捕获到新文件,然后重命名以替换原始文件。
答案 3 :(得分:0)