0%

需求

有小伙伴有这么一个需求,需要把一大段有固定规律的文本,按照某些条件拆分成三份(n 份),粘贴到 Excel 的不同 cell 中,同时对其中的内容做样式的更改。

实现分析

  • 复制内容
  • 程序读取剪贴板
  • 对内容做出更改(主要工作量)
  • 更改后的内容填充到剪贴板
  • 粘贴到 Excel

对内容做出更改

一句话:把内容改写成 html 即可。

坑 1 - 分 cell

<table> 即可

1
String text = "<html><table><tr><td>" + cell_1_content + "</td><td>" + cell_2_content + "</td></tr></table></html>";

坑 2 - 如果有 换行符

微软夹带的私货,如果 html 中换行用 <br> 没有特殊设置,会粘贴到第二

解决方法

1
2
3
4
5
6
7
<head>
<style>
br {
mso-data-placement:same-cell;
}
</style>
</head>

加粗,加红

1
2
3
4
5
// 加粗
String text = "<b>" + your_content + "</b>";

// 加红
String text = "<font color='red'>" + your_content + "</font>";

总结

  • 改写成 html
  • 用 table 来拼
  • 注意微软换行的 私活

题目

有个文件,里面存的是 user 身份证号,文件有 4G,程序可以使用的内存只有 500M,重新排序之后输出到新文件

思路

  1. 大文件按行读取,分割成 xx 大小的文件(chunk)(内存可以放下的内容)
  2. 内存对每个 chunk 排序后写入单个 chunk file
  3. 每次读取每个 chunk 的一行比较,取出最小(大)值写入最终的文件

分析

  • 身份证号码,暂且认为是 18 位数字(或有 X)的字符串
  • 那么每一行就有 18 字节
  • 其实还要考虑每一行最后的 换行符 也是占存储空间的
阅读全文 »

只对GitHub进行代理

如果挂了全局代理,克隆 gitee 之类的会变慢,可以只对 GitHub 进行代理。

1
2
3
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080

git config --global https.https://github.com.proxy socks5://127.0.0.1:1080

停止Docker守护进程:

1
sudo systemctl stop docker

编辑Docker守护进程的配置文件(通常位于/etc/docker/daemon.json):

1
sudo vi /etc/docker/daemon.json

如果该文件不存在,可以创建一个新文件。

添加以下配置项到daemon.json文件中:

1
2
3
4
5
6
7
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}

这将设置所有容器使用json-file日志驱动程序,并设置日志文件的最大大小为 10MB ,最多保留 3 个日志文件。

保存并关闭配置文件。

启动Docker守护进程:

1
2
sudo systemctl daemon-reload
sudo systemctl start docker

现在,所有 创建的Docker容器将按照设置的日志保存时长进行日志文件的轮转和保留。

注意,这些配置将应用于 创建的容器,对于现有的容器不会自动应用。如果想要修改现有容器的日志保存时长,需要停止容器,手动修改其配置,然后重新启动容器。

在Vi编辑器中,可以使用以下方法将换行符进行转换:

打开要编辑的文件:

1
vi filename

其中,filename是要编辑的文件名或文件路径。

按下 ESC 进入 vi 的命令模式

转换为 Unix 格式的换行符(LF):

1
:set ff=unix

这将把文件的格式设置为 Unix 格式,并将换行符转换为LF

转换为 Windows/DOS 格式的换行符(CRLF):

1
:set ff=dos

这将把文件的格式设置为 Windows/DOS 格式,并将换行符转换为CRLF

保存并退出 vi 编辑器,输入以下命令:

1
:wq

这将保存修改并退出Vi编辑器。