近期用到的一些命令合集

Grep 字典式匹配输出

1
grep -f source.txt dictionary.txt > output.txt

SED 若干则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 匹配成功输出
sed -n '/匹配成功/p' file.txt >output.txt

# 多个脚本并行执行
sh script01.sh & sh script02.sh & sh script03.sh

# 一般的正则替换
sed -i -e 's/^[0-9a-f]\{2\}/target\//g' a.txt

# 文件名无空格的列表输出
for file in $(find lib -name '*.txt'); do
echo "$file" >>liblist.txt
done

# 文件名有空格的列表输出
find lib -type f -name '*.txt' -print0 |
while IFS= read -r -d '' file; do
echo -e \"$file\" >>liblist.txt
done

# 计算文件 hash 值,用 cut 切掉输出时自带的文件名
hash=$(md5sum "$file"|cut -c1-32)

CMD 快速删除文件

1
2
3
4
5
6
7
:: 极快速删除所有文件
del /f/s/q *.*

:: 快速删除目录与子目录与文件
rmdir /s/q dir

:: 后者包含前者,但前者速度比后者快

Excel:从右往左查找某个字符。

1
=FIND("|",SUBSTITUTE(A2,"/","|",LEN(A2)-LEN(SUBSTITUTE(A2,"/",""))))

原理,使用 Substitute() 将所查找的字符替换为空,则长度差代表该字符出现的次数。将该次数作为 substitute 函数的第四参数,用一个特殊字符再度进行 Substitute() 替换,然后 Find() 该特殊字符。注意替换用的特殊字符(这里是"|",即Shift+\)不能在A2中出现,否则必须换一个。