qiang81020 / openssl-command

openssl babassl gmssl cert p1 p7 p12 p8
0 stars 0 forks source link

shell command #2

Open qiang81020 opened 1 year ago

qiang81020 commented 1 year ago

组合命令

1. head与tail组合,按照字符或行取一个文件中的一部分

# 按照字节取时,设置offset和length
#!/bin/bash
head -c $(( offset + length )) filename | tail -c $(( length + 1)) | xxd
# xxd主要用于打印文件

# 按照行数取时,设置起始行和结尾行.linestart,lineend
#   带行数显示文件内容
cat filename -n
head -n lineend filename | tail -c $(( lineend - linestart + 1)) 

# 实例
echo 11223344556677889900AABBCCDDEEFFGGHHIIJJKKLLMMNN > testfile
echo XXX >> testfile
echo YYY >> testfile
echo ZZZ >> testfile
echo OOO >> testfile
echo 111 >> testfile
cat testfile -n

1 11223344556677889900AABBCCDDEEFFGGHHIIJJKKLLMMNN
2 XXX
3 YYY
4 ZZZ
5 OOO
6 111
7 222

# bytes mode
# offset 6, length 10
head -c $(( 6 + 10 ))  testfile | tail -c 10 
head -c $(( 6 + 10 ))  testfile | tail -c 10 | xxd

# lines mode
# linestart 2, lineend 4
head -n 4  testfile | tail -n $(( 4 - 2 + 1)) 
qiang81020 commented 1 year ago

awk

分列打印,-F冒号是指分隔符

grep "BEGIN PRIVATE KEY" cert.cert -n | awk -F: '{print $1}'
qiang81020 commented 1 year ago

xargs

#!/bin/bash
qiang81020 commented 1 year ago

bash ls带颜色

alias ls=`ls --color`
qiang81020 commented 1 year ago

rename 批量从命名

rename old new allfile*

allfile* 文件集合。当前文件夹或某文件夹下所有文件 old 文件名中被替换的部分 new 文件名中更新的部分

qiang81020 commented 1 year ago

删除文件夹和子文件中所有同名文件

find ./ -name filename -delete
qiang81020 commented 1 year ago

搜索最深的文件夹的深度

find ./ -type d | awk -F'/' '{print NF-1" "$0}' | sort | tail -1
qiang81020 commented 1 year ago

命令出错后继续执行

使用|| true

grep 3 xxx.sh || true