bash代码片段snippets

bash代码片段


bash 复制代码
# Rename all *.txt to *.text
for file in *.txt; do
    mv -- "$file" "${file%.txt}.text"
done
bash 复制代码
while read x z y; do
  of="xag.1/$x.png" 
  if="xag/$y.png"
  cp $if $of	  
done < db.log 
bash 复制代码
tree -L 2 | sed 's/\xc2\xa0/ /g' > ~/Downloads/1.txt
bash 复制代码
du -sh -t 100M *

移除重复行

bash 复制代码
#整行比较
awk '!seen[$0]++' file
#第一个field比较
awk '!seen[$1]++' file

按指定field排序

bash 复制代码
#按第二个field排序
sort -k2,2 file

按起始10个字符去重复

bash 复制代码
uniq -w 10 file 

od输出二进制文件数据

bash 复制代码
od -x -v -A n --width=100 ./x.bin >od.txt

计算文本文件每行的md5

bash 复制代码
cat od.txt | perl -MDigest::MD5=md5_hex -nlE'say md5_hex($_)' >db_x.txt

文件分割

bash 复制代码
cat ../xtotal.pad | split -a 4 -d -l 52

一份文件复制两次

bash 复制代码
n=0;
for x in x*; do 
  y=`printf "y%04d" $n` && ((n=n+1)) && cp $x $y
  y=`printf "y%04d" $n` && ((n=n+1)) && cp $x $y
done

生成所有文件md5sum

bash 复制代码
md5sum x*

ffmpeg批量提取多个视频中图像

bash 复制代码
 n=1; for x in round.0/*;do echo $x;  fmt=frame${n}.%04d.png; ffmpeg -i $x -vf "fps=2" $fmt; ((n=n+1)); done

printout.sh

bash 复制代码
#!/bin/bash

hexpattern="0-9a-f"
pattern='$LZSKGHVRMTBCDEF'
input=$1

cat $input | sed 's/\s//g' | tr $hexpattern $pattern  | awk  'BEGIN{print} {print " ", $0}'

padding.pl

perl 复制代码
#!/usr/bin/perl

$pad='9999';
$nword_per_line=50;
$nline_per_page=52;

$num_of_lines=0;
while(<>)
{
    @array=split;

    $nword=@array;

    while($nword < $nword_per_line)
    {
        push(@array,$pad);
        $nword+=1;
    }
    $str=join(" ",@array);
    print $str,"\n";

    $num_of_lines+=1;
}

while($num_of_lines%$nline_per_page)
{
    print $str, "\n";
    $num_of_lines+=1;
}

dispatch.sh

bash 复制代码
#!/bin/bash

#set -x

for((n=0;n<200;n+=20)); do
        ((s=n))
        ((e=n+19))
        d=`printf '%03d-%03d\n' $s $e`
        [ -e $d ] && rm -rf $d && echo "delete $d"
        mkdir -p $d
        for ((i=s;i<=e;i++));do
                x=`printf 'x%03d\n' $i`
                [ -e $x ] || exit
                mv $x $d/.
        done
done

find path prune

bash 复制代码
find . -path './backup/*' -prune -o -path './.git/*' -prune -o type f -o -iname '*.f90' | xargs wc -l | sort -n 

数字列表

bash 复制代码
for f in x00{01..11};do 
  echo $f 
done 

for f in x00{1..9}{a..b};do 
  echo $f
done 

单个字符匹配(glob-expansion)

bash 复制代码
#!/bin/bash

echo "Matching Directories:"

for dir in [p-xP-X]*; do
    if [ -d "$dir" ]; then
        ls -d "$dir"
    fi
done

watch

bash 复制代码
watch tail -n 15 mylogfile.txt

tee

bash 复制代码
#stdout&stderr重定向到tee 
xxxx |& tee run.loog 

cygpath

bash 复制代码
cygpath "D:\xxxx"
网络资源

Awesome Bash

相关推荐
YY&DS7 分钟前
Qt Designer 自定义控件已提升后,如何修改提升类
开发语言·qt
右耳朵猫AI16 分钟前
Rust技术周刊 2026年第19周
开发语言·后端·rust
Leweslyh27 分钟前
基于 Confucius 架构的无人集群网络控制原语解析
开发语言·网络·php
月落归舟39 分钟前
Java线程小记
java·开发语言
摇滚侠1 小时前
01 基础语法 JavaScript 入门到精通全套教程
开发语言·javascript·ecmascript
sleven fung1 小时前
Milvus 向量数据库
开发语言·数据库·python·langchain·milvus
大大杰哥1 小时前
Java 日志框架详解:SLF4J + Logback 从入门到实战
java·开发语言·logback
ylscode1 小时前
黑客利用 GHOSTYNETWORKS 和 OMEGATECH 托管 JS 恶意软件基础设施
开发语言·安全·php·安全威胁分析
爱吃生蚝的于勒1 小时前
QT开发第二章——信号和槽
c语言·开发语言·c++·qt
xcLeigh1 小时前
Python入门:Python3 operator模块全面学习教程
开发语言·python·学习·教程·python3·operator