如何在Notepad ++中切换和合并文本行


0

我正在使用Notapad ++,我有两种情况,我坚持使用,对于我的学生有动词共轭列表的大文本文件,与android应用程序的数据库一起使用。

情况1 有一些文本文件,我想在每两行之间切换,因此第2行在第1行之前先行,第4行在第3行之前,依此类推文本文档的其余部分。我的意思是,而不是1,2,3,4,5,6行,他们将是2,1,4,3,6,5等。

情况2 在其他文本文件中,我想在一行中合并每4行,如下所示:从第4行开始,然后添加“ - ”符号,然后添加第2行的文本,“ - ”符号,然后是行的文本1,然后是逗号,然后是第3行的文本。

如果那令人困惑,我很抱歉。这是一个例子。

我需要这个:

过去分词
过去
意义
动词

所有人都成为这样一行:

动词 - 过去 - 过去分词,意思

第一个文件的片段:

تعليمات
instructions
مهندس
工程师
أرضية
地板
والدين
父母

第二个文件的片段:

改变了
改变
يتغير
改变
轻松
放松
يسترخى
放松
邀请
邀请
يدعو
邀请

非常感谢您的帮助。


如果您可以提供两个文件的代码段/示例,那将有助于提供有效的解决方案。我也相信这最好用Notepad ++宏或脚本或程序解决,它可以处理你的文本文件,而不是应用正则表达式。
克里斯蒂安

当然。我按照你的指示添加了两个片段。谢谢。
穆罕默德

您的问题现在更好,更容易阅读/理解。
克里斯蒂安

Answers:


0

好的,我已经设法使用Notepad ++中的宏来完成这项工作。

只是为了澄清,一个宏允许你再次重复一组动作(并再次......),但你需要“教”Notepad ++你想先做什么。因此,请严格按照以下说明进行操作,否则可能会导致非工作结果。

我无法弄清楚如何(或者确实可能)将宏导出为我可以在这里发布的格式,所以我将逐步介绍我使用的方法。

请注意,为简单起见,我将仅解释如何使用宏来处理您的第一个案例(您的第一个文件),以免不必要地重复自己。另外,在尝试此操作之前,请确保您拥有原始文件的备份副本,以防某些内容无法正常工作。

好的,这里是:

  1. 打开Notepad ++,打开你的文件。

  2. 确保您位于第一行数据的开头,即在您的字典中包含字典中第一个单词的第一行。

  3. 从“宏”菜单中选择“开始录制”

  4. 仅使用第一组数据执行您需要执行的操作。在你的第一个文件的情况下,这将是这样的:

    • 标记第一行
    • ctrl+ 切掉它X
    • 移到下一行的开头
    • 插入用ctrl+ 切出的线V
    • 下移到下一行的开头

这里的最后一步非常重要,因为您希望在下一次运行宏的过程中处于“正确的位置”

  1. 现在从“宏”菜单中选择“停止录制”

  2. 从“宏”菜单中选择“保存录制的宏”,并给它一些合适的名称,然后单击“确定”。

  3. 现在(仍然将光标放在下一行的开头)选择“宏”>“多次运行宏”,选择在步骤6中保存的宏并选择“运行到文件结尾”,然后单击“确定”。

宏现在将通过您的文件。如果您的文件很大,请务必花点时间完成!您现在应该看到宏已根据需要将所有行移动。

同样的原则可以应用于您的第二个请求,尽管这需要更高级的宏以及更多记录的操作。一旦你理解了这个概念并知道如何录制宏并播放它,它应该是可行的。

希望这有用!


像魔术一样工作!两种情况。非常感谢您向我介绍notepad ++宏。这是我的第一次尝试,并且由于你脚踏实地的指示,我发现它比正则表达式更容易。你为我开启了一个充满可能性的世界。我不知道该怎么感谢你才足够!
穆罕默德

我很高兴我帮助你学到了新的东西。我从@Vembu建议的方法中学到了一些东西,所以我也很高兴。
克里斯蒂安

1

Situation2:

我相信你想要换行,所以第2行应该先行,然后是第1行

我们可以分两步完成:

步骤1:

首先,我们可以互换价值观:

apple
ball
cat
doll

找到 :(。+)\ r \ n(。+)

替换为:\ 2 \ r \ n \ 1

输出:

ball
apple
doll
cat

这将按2的顺序选择行并交换它。您可以按如下方式增加此表达式

apple
ball
cat
doll

找到 :(。+)\ r \ n(。+)\ r \ n(。+)

替换为:\ 3 \ r \ n \ 1

输出:

cat
ball
apple
doll

以上是锁定三条线并替换第三条和第一条线

注意:请不要选择“环绕”选项

在此输入图像描述

第2步:

现在可以将该行与下面的表达式合并

ball
apple
doll
cat

找到 :(。+)\ r \ n(。+)

替换为:\ 1 \ 2

ball apple
doll cat

希望这可以帮助!


非常感谢Vembu教我这个。对此,我真的非常感激。然而,我发现克里斯蒂安向我介绍的宏比正则表达式要简单得多,后者我觉得这很难理解,而且与儿童游戏相比,它是宏观的。非常感谢你花时间陪伴。
Muhammad

我从你的答案中学到了一些东西,所以对它进行了褒奖。所以这并非徒劳:)
克里斯蒂安

0

试试这个:

情况1:

تعليمات
instructions
مهندس 
engineer
أرضية 
floor 

按Ctrl + H访问“替换”对话框,勾选“正则表达式”,然后输入以下表达式。

找到 :(。+)\ r \ n(。+)\ r \ n(。+)

替换为:\ 1 \ t \ 2 \ t

输出:

تعليمات instructions
مهندس engineer
أرضية floor 

情况2:

Past participle
Past
Meaning
Verb

按Ctrl + H访问“替换”对话框,勾选“正则表达式”,然后输入以下表达式。

找到 :(。+)\ r \ n(。+)\ r \ n(。+)\ r \ n(。+)

替换为:\ 1- \ 2- \ 3,\ 4

(你可以根据自己的意愿交换数字)

输出:

Past participle-Past-Meaning,Verb

希望这可以帮助!


@Muhammad我会首先尝试这种方法(在我使用宏描述之前)
Kristian

@Verbu非常感谢。你对第二种情况的解决方案效果很好。我只需用以下内容更改替换:\ 4 - \ 2 - \ 1,\ 3至于第一种情况,这并不是我想要做的。我需要切换线,而不是合并它们。或者更好的是,将它们合并,使第二行的文本首先跟随第一行的文本,在两个文本之间加上逗号。
穆罕默德

@Muhammad。我在本地测试机上尝试了这个,它工作正常。
vembutech 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.