CV 算法工程师常用 shell 命令 15 条

CV 算法工程师作为耗时间耗蓝条的工种,工作效率不提升就会整日淹没在脚本里,分享 15 个常用 shell 命令,每个都可以举一反三,也可以添加到 alias,给短暂的生命续一秒。

  1. 递归统计目录下的文件数目
ls -lR | grep "^-" | wc -l
  1. 递归找出目录下所有的 JPG 图片, 可通过管道输入到文件
find $PWD | xargs ls -d  | grep ".jpg$"
  1. 循环执行某个命令
while true; do $do_something; date; sleep 10; done
  1. 查看 GPU 状态及相关进程
nvidia-smi | tee /dev/stderr | awk '/ C / {print $3}' | xargs -r ps -up

CV 算法工程师常用 shell 命令 20 条

  1. 时间戳转换
date -d @1590044013
# Thu May 21 14:53:33 CST 2020
  1. 遍历当前文件下,对特定文件/目录执行某个操作
for f in $(ls $PWD); do if [ "${f##*.}"x = "mp4"x ]; then $do_something; fi ; done
  1. 提高 PATH 相关变量打印的可读性
echo -e ${PATH//:/\\n}

CV 算法工程师常用 shell 命令 20 条

  1. AVI 转 MP4
ffmpeg -i sample.avi -c:v libx264 -pix_fmt yuv420p sample.mp4
  1. 随机返回文本里 10 行
shuf -n 10 sample.txt
  1. 查找目标在第几行
grep -n 'my_target_string'  sample.txt
  1. 按照 1/10 均匀抽取
sed -n ‘1~10p’ sample.txt > sample.10in1.txt
  1. 通过文本(存放相对路径)指定需要同步的文件
rsync -avz —files-from=sample.txt . username@ip:/path/to/remote
  1. 文本里的相对路径转成绝对路径
sed -i "s#^#$PWD#" sample.txt
  1. 将当前目录下的所有任意命名的图片转成视频(注意 shape,yuv 参数)
input=/path/to/input
output=/path/to/output.mp4
ffmpeg -y -r 16 -f image2 -s 1280x720 -pattern_type glob \
    -i $input/\*.jpg -vf \
    drawtext="fontfile=/usr/share/fonts/open-sans/OpenSans-Regular.ttf: text='%{frame_num}': fontcolor=red: fontsize=40: x=(w-tw)/2: y=0.95*h" \
    -vcodec libx264 -crf 8 -pix_fmt yuv420p $output
  1. 视频拼接
ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "[0:v]pad=iw:ih*2[a];[a][1:v]overlay=0:h" vert.mp4  # 上下拼接
ffmpeg -i 1.mp4 -i 2.mp4 -filter_complex "[0:v]pad=iw*2:ih*1[a];[a][1:v]overlay=w" hori.mp4  # 左右拼接
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -filter_complex "[0:v]pad=iw*2:ih*2[a];[a][1:v]overlay=w[b];[b][2:v]overlay=0:h[c];[c][3:v]overlay=w:h" grid.mp4  # 四宫格

有爱自取,里面的命令都可以灵活使用,遇到问题就留言~

本作品采用《CC 协议》,转载必须注明作者和本文链接
进击の戴戴
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!