如果找到的文件名代空格上面的命令运行就可能会出问题了有一个参数-print0,于默认的-print相比,输出的序列不是以空格分隔,而是以null字符分隔。而xargs也有一个参数-0,可以接受以null而非空格间隔的输入流。所以说xargs简直就是为find而生的。上面的问题就很好解决了:
find ./ -name '*.bak' -print0 | xargs -0 rm -rf
Linux Find 按修改时间查找文件
Find -mtime n n表示从现在开始的第n天内的改动,即0表示今天内,1表示昨天内
0: (-1,0)
1: (-2,-1)
2: (-3,-2)
(-n-1,-n)*24
-n表示n天内 (-n,0)
+n表示n天前 (-oo,-n)
find命令 -- 之查找指定时间内修改过的文件
比如我们要查找linux下指定时间内做过改动的文件,我们可以用find命令,其实find命令的功能十分强大,下面我们通过几个简单的例子来学习下find命令的简单用法:
find /opt -iname "*" -atime 1 -type f
找出 /opt 下一天前访问过的文件
选项 OPTIONS
所有的选项都总是返回真值,它们总会被执行,除非放在表达式中执行不到的地方。因此,清楚起见,最好把它们放在表达式的开头部分。
-daystart
从当日起始时开始而不是从24小时之前,计算时间(for -amin, -atime, -cmin, -ctime, -mmin, and -mtime)。
-amin n
对文件的最近一次访问是在 n 分钟之前。
-anewer file
对文件的最近一次访问比 file 修改时间要晚。如果命令行中 -follow 在 -anewer 之前,(也只有在这种情况下 -anewer会受 -follow 的影响)。
-atime n
对文件的最近一次访问是在 n*24 小时之前。
-cmin n
对文件状态的最近一次修改是在 n 分钟之前。
-cnewer file
对文件状态的最近一次修改比 file 修改时间要晚。如果命令行中 -follow 在 -cnewer 之前,(也只有在这种情况下-cnewer 会受 -follow 的影响)。
-ctime n
对文件状态的最近一次修改是在 n*24 小时之前。
-mmin n
对文件数据的最近一次修改是在 n 分钟之前。
-mtime n
对文件数据的最近一次修改是在 n*24 小时之前。
-mtime : 指定时间曾被改动过的文件,意思是文件內容被更改过
-ctime : 指定时间曾被更改过的文件,意思是文件权限被更改过
-atime : 指定时间曾被存取过的文件,意思是文件被读取过
1. 时间是以 24 小时为一个单位,而不是以天的
2. 2011/09/08 12:00 时间开始找一天內的,会列出 2011/09/07 12:00 ~ 2011/09/08 12:00 时间內的文件
找出 3 天"以前"被改动过的文件 (前第三天以前 → 2011/09/05 12:00 以前的文件) (> 72 小时)
1. find /var/log/ -mtime +3 -type f -print
找出 3 天內被改动过的文件 (2011/09/05 12:00 ~ 2011/09/08 12:00 內的文件) (0 ~ 72 小时內)
1. find /var/log/ -mtime -3 -type f -print
找出前第 3 天被改动过的文件 (2011/09/04 12:00 ~ 2011/09/05 12:00 內的文件) (72 ~ 96 小时)
1. find /var/log/ -mtime 3 -type f -print
找出第 3 天被改动过的文件 (也可以这样写)
1. find /var/log/ -mtime +2 -mtime -4 -type f -print
+ 2 2天前
- 2 2天内
无 2 第2天
+2 -4 2天前4天内即第3天
-exec语法格式为:
-exec command {} \;
在{}和\之间必须要有空格,否则会报上面的错。
Find 查找正则排除文件
Find 逻辑
!,-not 非
-a,-and 与
-o,-or,逗号 或
排除某文件
Find . \! -name "zhang" -type f
查找或
Find . -regex '.*\.txt\|.*\.doc'
find . -type f -name "*.java[0-9]*" //java后面有一位数字后面任意
查找特定目录下的jar
find . -type f -path "./lib" -prune -o -name "*.jar"
排除lib目录
find . -type f -not -path "./lib*"
只查找一级目录
Find . -type f -maxdepth 1
find -type f -mtime -30 | grep -v -P "log|_jsp|\.class" |grep java
Linux中find常见用法示例
find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
#-print 将查找到的文件输出到标准输出
#-exec command {} \; —–将查到的文件执行command操作,{} 和 \;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户
例:find . -name .svn | xargs rm -rf
====================================================
-name filename #查找名为filename的文件
-perm #按执行权限来查找
-user username #按文件属主来查找
-group groupname #按组来查找
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查GIN: 0px">
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio %; #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录
=====================================================
$find ~ -name "*.txt" -print #在$HOME中查.txt文件并显示
$find . -name "*.txt" -print
$find . -name "[A-Z]*" -print #查以大写字母开头的文件
$find /etc -name "host*" -print #查以host开头的文件
$find . -name "[a-z][a-z][0–9][0–9].txt" -print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print
$find . -size +1000000c -print #查长度大于1Mb的文件
$find . -size 100c -print # 查长度为100c的文件
$find . -size +10 -print #查长度超过期作废10块的文件(1块=512字节)
$cd /
$find etc home apps -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name "passwd*" -exec grep "cnscn" {} \; #看是否存在cnscn用户
$find . -name "yao*" | xargs file
$find . -name "yao*" | xargs echo "" > /tmp/core.log
$find . -name "yao*" | xargs chmod o-w
======================================================
find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l 在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2 在/home下查最近两天内改动过的文件
find /home -atime -1 查1天之内被存取过的文件
find /home -mmin +60 在/home下查60分钟前改动过的文件
find /home -amin +30 查最近30分钟前被存取过的文件
find /home -newer tmp.txt 在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt 在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2 列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn 列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn 列出/home内组为cnscn的文件或目录
find /home -gid 501 列出/home内组id为501的文件或目录
find /home -nouser 列出/home内不属于本地用户的文件或目录
find /home -nogroup 列出/home内不属于本地组的文件或目录
find /home -name tmp.txt -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty 查找大小为0的文件或空目录
find /home -size +512k 查大于512k的文件
find /home -size -512k 查小于512k的文件
find /home -links +2 查硬连接数大于2的文件或目录
find /home -perm 0700 查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} \;
find /tmp -name tmp.txt -ok rm {} \;
find / -amin -10 # 查找在系统中最后10分钟访问的文件
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 groupcat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -nouser #查找在系统中属于作废用户的文件
find / -user fred #查找在系统中属于FRED这个用户的文件
查当前目录下的所有普通文件
# find . -type f -exec ls -l {} \;
-rw-r–r– 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r–r– 1 root root 12959 2003-02-25 ./conf/magic
-rw-r–r– 1 root root 180 2003-02-25 ./conf.d/README
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出
=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} \;
=================================================
查询当天修改过的文件
[root@book class]# find ./ -mtime -1 -type f -exec ls -l {} \;
=================================================
查询文件并询问是否要显示
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls … ./classDB.inc.php > ? y
-rw-r–r– 1 cnscn cnscn 13709 1月 12 12:22 ./classDB.inc.php
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} \;
< ls … ./classDB.inc.php > ? n
[root@book class]#
=================================================
查询并交给awk去处理
[root@book class]# who | awk ’{print $1"\t"$2}’
cnscn pts/0
=================================================
awk—grep—sed
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ’none’ | sed s"/\/dev\///g"
文件系统
sda2
sda1
[root@book class]# df -k | awk ‘{print $1}’ | grep -v ’none’
文件系统
/dev/sda2
/dev/sda1
1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名
A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut -d’:' -f1| uniq > filename
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} \; -print
2)find / -name filename -exec rm -rf {} \;
find / -name filename -ok rm -rf {} \;
3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;
4)将find出来的东西拷到另一个地方
find *.c -exec cp ‘{}’ /tmp ‘;’
如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir
6)查找2004-11-30 16:36:37时更改过的文件
# A=`find ./ -name "*php"` | ls -l –full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"
mysql重置root密码
Step 1 — Identifying the Database Version
Most modern Linux distributions ship with either MySQL or MariaDB, a popular drop-in replacement which is fully compatible with MySQL. Depending on the database used and its version, you’ll need to use different commands to recover the root password.
You can check your version with the following command:
mysql –version
Copy
You’ll see some output like this with MySQL:
MySQL output
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
Or output like this for MariaDB:
MariaDB output
mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1
Make note of which database and which version you’re running, as you’ll use them later. Next, you need to stop the database so you can access it manually.
Step 2 — Stopping the Database Server
To change the root password, you have to shut down the database server beforehand.
You can do that for MySQL with:
sudosystemctl stop mysql
And for MariaDB wtih:
sudosystemctl stop mariadb
After the database server is stopped, you’ll access it manually to reset the root password.
Step 3 — Restarting the Database Server Without Permission Checking
If you run MySQL and MariaDB without loading information about user privileges, it will allow you to access the database command line with root privileges without providing a password. This will allow you to gain access to the database without knowing it.
To do this, you need to stop the database from loading the grant tables, which store user privilege information. Because this is a bit of a security risk, you should also skip networking as well to prevent other clients from connecting.
Start the database without loading the grant tables or enabling networking:
sudomysqld_safe –skip-grant-tables –skip-networking &
The ampersand at the end of this command will make this process run in the background so you can continue to use your terminal.
Now you can connect to the database as the root user, which should not ask for a password.
mysql -uroot
Copy
You’ll immediately see a database shell prompt instead.
MySQL prompt
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
MariaDB prompt
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]>
Now that you have root access, you can change the root password.
Step 4 — Changing the Root Password
One simple way to change the root password for modern versions of MySQL is using the ALTER USER command. However, this command won’t work right now because the grant tables aren’t loaded.
Let’s tell the database server to reload the grant tables by issuing the FLUSH PRIVILEGES command.
FLUSH PRIVILEGES;非常关键,必须先执行这个,然后执行后面的语句才有效
Now we can actually change the root password.
For MySQL 5.7.6 and newer as well as MariaDB 10.1.20 and newer, use the following command.
ALTER USER’root’@’localhost’IDENTIFIED BY ‘new_password’;
Copy
For MySQL 5.7.5 and older as well as MariaDB 10.1.20 and older, use:
SET PASSWORD FOR ‘root’@’localhost’=PASSWORD(‘new_password’);
Copy
Make sure to replace new_password with your new password of choice.
Note: If the ALTER USER command doesn’t work, it’s usually indicative of a bigger problem. However, you can try UPDATE … SET to reset the root password instead.
UPDATE mysql.user SET authentication_string =PASSWORD(‘new_password’)WHERE User =’root’AND Host =’localhost’;
Copy
Remember to reload the grant tables after this.
In either case, you should see confirmation that the command has been successfully executed.
Output
Query OK, 0 rows affected (0.00 sec)
The password has been changed, so you can now stop the manual instance of the database server and restart it as it was before.
Step 5 — Restart the Database Server Normally
First, stop the instance of the database server that you started manually in Step 3. This command searches for the PID, or process ID, of MySQL or MariaDB process and sends SIGTERM to tell it to exit smoothly after performing clean-up operations. You can learn more in this Linux process management tutorial.
For MySQL, use:
sudokillcat/var/run/mysqld/mysqld.pid
Copy
For MariaDB, use:
sudokill/var/run/mariadb/mariadb.pid
Copy
Then, restart the service using systemctl.
For MySQL, use:
sudosystemctl start mysql
Copy
For MariaDB, use:
sudosystemctl start mariadb
Copy
Now you can confirm that the new password has been applied correctly by running:
mysql -uroot -p
Copy
The command should now prompt for the newly assigned password. Enter it, and you should gain access to the database prompt as expected.
Conclusion
You now have administrative access to the MySQL or MariaDB server restored. Make sure the new root password you choose is strong and secure and keep it in safe place.
如何编译 LibreOffice
一、安装编译环境依赖
$ sudo dnf builddep libreoffice
$ sudo. dnf install. ccache # 安装 ccache,从而能够在重新编译时复用之前编译的缓存以加速编译。您也可以不用ccache$ ccache -M 10G # 将 ccache 缓存大小限制设置为 10G$ ccache –set-config=cache_dir=# 若空间不足,可将 ccache 的缓存目录设置为其他的位置(比如挂载的其他分区目录)$ sudodnf installpatch avahi-devel # builddep 没有安装好这两个编译依赖的包$ sudodnf installfakeroot rpm-build # 若您需要 rpm 或 deb 格式的安装包,则需要安装这两个依赖项
二、克隆源代码及子模块(git clone)
首先克隆主代码。此处克隆 libreoffice-7-1 分支。克隆时,因为我只需要最新的源代码(不需要历次的所有commit),因此使用了depth=1选项。
$ gitclone –depth=1–branch libreoffice-7-1 git://go.suokunlong.cn/lo/core ./libreoffice-7-1
正克隆到 ‘./libreoffice-7-1’…
remote: 枚举对象: 120360, 完成.
remote: 对象计数中: 100% (120360/120360), 完成.
remote: 压缩对象中: 100% (86011/86011), 完成.
remote: 总共 120360(差异 46040),复用 87907(差异 32504)
接收对象中: 100% (120360/120360), 272.72MiB |9.36MiB/s, 完成.
处理 delta 中: 100% (46040/46040), 完成.
正在更新文件: 100% (120889/120889), 完成.
然后,配置子模块。若不进行如下配置,则若启用中文用户界面选项,会默认去git.libreoffice.org克隆子模块代码,速度较慢并且无法观察克隆进展:
$ cdlibreoffice-7-1/
$ gitsubmodule init
子模组 ‘dictionaries’(https://git.libreoffice.org/dictionaries)已对路径 ‘dictionaries’注册
子模组 ‘helpcontent2’(https://git.libreoffice.org/help)已对路径 ‘helpcontent2’注册
子模组 ‘translations’(https://git.libreoffice.org/translations)已对路径 ‘translations’注册
我们编译时只需要 translations 子模块,没有启用帮助及词典,因此到 .git/config 中将 dictionaries 和 helpcontent2 两个子模块删除。然后,将translations模块的url修改为国内镜像地址(比如 git://go.suokunlong.cn/lo/translations),以加快克隆速度。
然后,抓取子模块。此处使用 –depth=1 选项以只获取最新的翻译字符串,并且使用 –progress 选项以显示克隆进展。
$ gitsubmodule update –progress –depth=1正克隆到 ‘/home/suokunlong/build/lo/libreoffice-7-1/translations’…
remote: 枚举对象: 45290, 完成.
remote: 对象计数中: 100% (45290/45290), 完成.
remote: 压缩对象中: 100% (11030/11030), 完成.
remote: 总共 45290(差异 22278),复用 37455(差异 14997)
接收对象中: 100% (45290/45290), 107.72MiB |7.20MiB/s, 完成.
处理 delta 中: 100% (22278/22278), 完成.
remote: 总共 0(差异 0),复用 0(差异 0)
remote: 枚举对象: 14403, 完成.
remote: 对象计数中: 100% (14403/14403), 完成.
remote: 压缩对象中: 100% (3316/3316), 完成.
remote: 总共 11565(差异 5892),复用 9773(差异 4229)
接收对象中: 100% (11565/11565), 89.61MiB |3.06MiB/s, 完成.
处理 delta 中: 100% (5892/5892), 完成 155个本地对象.
来自 git://go.suokunlong.cn/lo/translations
- branch 4a12b40c8751323705d82539be43d04990f934a9 ->FETCH_HEAD
子模组路径 ‘translations’:检出 ‘4a12b40c8751323705d82539be43d04990f934a9’
最后,获取 external_tarballs. 这是 libreoffice 在编译时使用的第三方库等包,默认是从境外服务器去抓取,速度很慢。我已将常用的包放在了境内服务器,您需要从以下位置下载。可以使用下载器一次性全部下载,或者在下面的 make 阶段根据终端输出再去仅下载需要的文件。下载的文件请放置到下列autogen.input中设定的路径下。
https://go.suokunlong.cn:88/dl/libreoffice/external_tarballs/
三、配置编译选项(autogen.input)
你可以不指定编译选项,直接按照下一部分介绍的 autogen.sh命令生成makefile,这样做就会按照默认的编译选项进行。你也可以将编译选项作为autogen.sh运行时的参数传递给它,这种情况下就会使用命令行参数作为编译选项。
但最方便的是通过autogen.input来设置编译选项。这个文件仅在不存在任何命令行参数时才会生效。在克隆的源代码根目录下建立 autogen.input 文件,内容如下。完整的编译配置选项及其含义,见源代码根目录下的configure文件。
我一般直接在线浏览帮助文档,因此将帮助禁用了–without-help
–without-helppack-integration
启用简体及繁体中文用户界面–with-lang=zh-CN zh-TW
自己编译的话在线更新及崩溃报告功能就没啥用了,禁用–disable-online-update
–disable-breakpad
禁用 Office Development Kit。若启用 ODK,则额外需要doxygen依赖项。–disable-odk
–without-doxygen
若编译好之后您需要rpm (或deb)包,则需要启用下列两项:–enable-epm
–with-package-format=rpm
若您需要在多个不同版本的编译之间共享external_tarballs第三方源代码包,则可设置下列选项:# –with-external-tar=# 现在很多功能都用不到java了,因此我直接将其禁用–without-java
我需要用到firebird数据库,因此启用–enable-firebird-sdbc
–without-system-firebird
–enable-python=internal
四、编译(autogen.sh && make)
在源代码根目录下运行 autogen.sh。该脚本会调用 autogen.input中定义的编译选项。
./autogen.sh
若提示缺少某个包,则很可能是需要手动安装这个包的devel版本。若看到如下的提示,则表示autogen.sh运行无错误:
To build, run:
/usr/bin/make
To view some help, run:
/usr/bin/make helpAfter the build has finished successfully, you can immediately run what you built using the command:
instdir/program/soffice
If you want to run the smoketest, run:
/usr/bin/make check
此时就可以运行 make 命令进行编译了:
make
此时,若提示正在从 dev-www.libreoffice.org 下载各种包,但墙内速度很慢的情况下,可以按下 Ctrl-C键中断,然后手动从我的墙内缓存链接下载,并放入 –with-external-tar 编译选项指定的目录。也可以从其他任何地方下载,比如提示下载 Python-3.7.7.tar.xz 时也可以从 http://npm.taobao.org/mirrors/python/3.7.7/ 下载。
编译比较耗时。按照官方wiki上的说法,首次编译大约耗时约 = 8小时 / cpu核心数,后续更改源代码后增量编译耗时从几秒钟到几小时不等,取决于代码更改的程度。若需要频繁重新编译,则安装ccache包是个不错的选择,autogen.sh若检测到你安装了ccache则会自动启用。你也可以用icecream等分布式编译方式加速编译。
编译完成后,执行 .instdir/program/soffice 即可运行。若在autogen.input 中启用了 “–with_package_format=rpm deb” ,则生成的安装包在 workdir/installation中。
excel转markdown
源码和下载:
0.1.3
- mac: https://github.com/fanfeilong/exceltk/blob/master/pub/exceltk.0.1.3.pkg
- windows: https://files.cnblogs.com/files/math/exceltk.0.1.3.zip
特性
- 转换Excel表格到MarkDown表格
- 支持Excel单元格带超链接,如果一个单元格,你右键添加了超链接,自动转成[text](url)
- 如果Excel里有合并的跨行单元格,在转换后的MarkDown里是分开的单元格,这是因为MarkDown本身不支持跨行单元格
- 如果Excel表格右侧有大量的空列,则会被自动裁剪,算法是根据前100行来检测并计算
- 支持指定小数数字的精度
- 支持使用表格首行代替表头(保持空表头)
- 支持指定对齐方式
常规用例,文件转换
Mac OS 版本请在命令行下直接使用exceltk,不用带exe后缀,MacOS的安装包自动配置好环境变量
- 整个表格
- exceltk.exe -t md -xls xxx.xls
- exceltk.exe -t md -xls xxx.xlsx
- 指定sheet
- exceltk.exe -t md -xls xx.xls -sheet sheetname
- exceltk.exe -t md -xls xx.xlsx -sheet sheetname
- 指定小数数字的精度,例如指定精确到小数点后2位数字
- exceltk.exe -t md -p 2 -xls xxx.xls
解决在移动设备上表格不能自适应的问题
通过指定-bhead 选项解决,使用表格首行代替表头,表头用空的代替:
exceltk.exe -t md -bhead -xsl test.xsl
输出如下风格的markdown:
||||||||||||||
|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|:–|
|**姓名**|**序号**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|**积点和**|
|某某某|34|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|6.86|
效果如下:
姓名 | 序号 | 积点和 | 积点和 | 积点和 | 积点和 | 积点和 | 积点和 | 积点和 | 积点和 | 积点和 | 积点和 | 积点和 |
某某某 | 34 | 6.86 | 6.86 | 6.86 | 6.86 | 6.86 | 6.86 | 6.86 | 6.86 | 6.86 | 6.86 | 6.86 |
指定对齐方式
exceltk -t md -a r -xls example.xlsx
-a 参数指定对齐方式,可选参数是l,c,r,分别是左对齐、居中对齐、右对齐
通过代理访问ssh git
ssh -o “ProxyCommand nc -X 5 -x 192.168.4.20:1080 %h %p” root@172.19.6.131
git config http.proxy http://192.168.4.20:8080 http代理
git config http.proxy socks5://192.168.4.20:1080 http代理
curl -x ‘http://192.168.4.20:8080’ http://www.baidu.com
手机上开启http或者socket代理协议
设置代理
git config http.proxy ‘socks5://192.168.4.20:1080’
git config –global https.proxy ‘socks5://127.0.0.1:1080’
取消代理
git config –global –unset http.proxy
git config –global –unset https.proxy
命令行中打开文件后执行命令
<< EOF 是执行一命令,命令从<<EOF行开始到EOF出现的地方结束。例如:
继续阅读“命令行中打开文件后执行命令”Fedora试用体验
Fedora刻录就与众不同,必须得是镜像到光盘。先前试用的其他系统,用虚拟光驱打开然后复制刻录也是可以的。
Fedora是Redhat支持的开源项目,出身名门,的确是十分优秀的系统。下面贴几张屏幕截图:
桌面 文件浏览器
控制中心 密码和加密密钥
项目管理 Twitter发布工具
十分高级的计算器 便笺
还有一个十分强大的IM工具Empathy IM,Gtalk、MSN、Yahoo、QQ、AIM、ICQ通吃的即时聊天工具,忘记了截图了。