我有一个文本文件:
0xC1,0x80,
0x63,0x00,
0x3F,0x80,
0x01,0xA0,
我希望输出为:
Line1: 0xC1,0x63,0x3F,0x01,
Line2: 0x80,0x00,0x80,0xA0,
如何使用Notepad ++中的替换功能?
答案 0 :(得分:4)
干杯...
答案 1 :(得分:3)
Notepad ++中没有用于转置矩阵的内置函数,你无法使用Replace(如M42指出)。另外,我不知道任何相关的插件。因此,您需要使用不同的编辑器或使用脚本执行此操作。我猜使用电子表格的最简单的解决方案,例如Excel或OpenOffice,它们都可以让您轻松转置表格。
但是,如果不离开Notepad ++,仍然有一个很好的选择。是使用Python Script
插件。
Python Script
或official website安装Plugin Manager
插件。Plugins > Python Script > New Script
。选择新脚本的文件名(例如transpose.py
)并复制后面的第一个代码块,然后将第二个代码块复制到另一个脚本,例如transpose_uneven.py
。Plugins > Python Script > Scripts > transpose.py
。这将打开一个新的标签,其中包含您的数据转置。delimiter=","
newline="\n"
content=editor.getText()
matrix=[line.split(delimiter) for line in content.rstrip(newline).split(newline)]
transposed=list(map(list, zip(*matrix)))
notepad.new()
for line in transposed:
editor.addText(delimiter.join(line) + newline)
if len(transposed)!=len(matrix[0]):
console.clear()
console.show()
console.write("Warning: some rows are of uneven length. You might consider using the transpose_uneven script instead.")
import itertools
delimiter=","
newline="\n"
content=editor.getText()
matrix=[line.split(delimiter) for line in content.rstrip(newline).split(newline)]
transposed=list(map(list, itertools.izip_longest(*matrix, fillvalue="")))
notepad.new()
for line in transposed:
editor.addText(delimiter.join(line) + newline)
transpose.py
脚本将转置以下示例:
0xC1,0x80,
0x63,0x00,
0x3F,0x80,
0x01,0xA0,
要:
0xC1,0x63,0x3F,0x01
0x80,0x00,0x80,0xA0
,,,
如果您的某些行不均匀:
0xC1,0x80,
0x63,0x00,
0x3F,0x80,
0x01,0xA0,
0x02
不均匀的列将被相应丢弃:
0xC1,0x63,0x3F,0x01,0x02
如果不需要,请使用transposed_uneven.py
,它将返回:
0xC1,0x63,0x3F,0x01,0x02
0x80,0x00,0x80,0xA0,
,,,,
答案 2 :(得分:0)
如果你真的有这样一个固定的格式并且需要这样一个固定的输出,我通常会尝试使用即时宏。
所以我的光标位于文件的左上角,准备操作,我按下录制按钮(或在菜单栏中宏 - 开始录制)。
在特定情况下,请按:
结束点击停止按钮(或菜单栏宏 - 停止录制)。
现在进行第一次测试,点击播放按钮(或菜单栏 Macro - Playback )并测试它是否有效。如果是,请单击宏 - 多次运行宏并选择运行直到文件末尾。
答案 3 :(得分:0)
您可以使用以下快捷方式在记事本++中进行移调
Step 1: Ctrl + A: selects all.
Step 2: Ctrl + J: Transpose the Row you selected