Shell笔记——文本操作

chattr 设置文件为不可修改,不可删除 
# 设置为不可修改
chattr +i filename

# 还原为可修改
chattr -i filename

 

只列出目录
ls -d */

ls -F | grep "/$"

ls -l | grep "^d"

find . -maxdepth 1 -type d -print

 

查看文件详细内容
stat filename

 

把命令输出打印到无底洞
command > /dev/null 2>&1 &

 

paste 按列合并多个文件
paste file1.txt file2.txt -d ","

 

tac  倒序打印文件行
# 命令名称实际上是cat命令倒写
tac filename1 filename2
tac filename

# 从stdin中读取
seq 5 | tac

 

tar 命令
# 比较归档中文件和文件系统有什么不同:
tar -df archive.tar

# 排除版本控制的目录(包含子目录):
tar --exclude-vcs -zcvf DataControl.tar.gz DataControl/

 

生成任意大小的文件
# 该命令会创建一个1MB大小的文件junk.data : if 代表输入文件(input file)
# of 代表输出文件(output file), bs 代表以字节为单位的块大小(block size)
# count代表需要被复制的块数 dd if=/dev/zero of=./junk.data bs=1M count=1

 

分割文件和数据
 
  

分割文件成10k(xaa,xab,xac)
split -b 10k file.txt

 
  

以数字为后缀 (-d )(-a 后缀长度)
split -b 10k file.txt -d -a 4

 
  

自定义分割文件后缀 (split [COMMAND_ARGS] PREFIX)
split -b 10k file.txt -d -a 4 split_file

 
  

根据行数分割文件
split -l 10 file.txt -d -a 4 split_file

 
  

切分文件名和扩展名 (贪婪:匹配出最后一个扩展)
filename="Taylorswift.jpg"
文件名(%:非贪婪 %%:贪婪)(从右向左)
name=${filename%.*}
扩展名(#:非贪婪 %%:贪婪)(从左向右)
extension=${filename#*.}

 
  


csplit分析文本,切割日志 (server.log)
SERVER-1
[connection] 192.168.0.1
[connection] 192.168.0.2
[disconnect] 192.168.0.3
[connection] 192.168.0.4
SERVER-2
[connection] 192.168.0.1
[connection] 192.168.0.2
[disconnect] 192.168.0.3
[connection] 192.168.0.4
SERVER-3
[connection] 192.168.0.1
[connection] 192.168.0.2
[disconnect] 192.168.0.3
[connection] 192.168.0.4

 
  

csplit server.log /SERVER/ -s {*} -n 2 -f server -b "%02d.log";rm server00.log
/SERVER/ 用来匹配某一行,分割过程即从此处开始。
{*} 表示根据匹配重复执行分割,直到文件末尾为止。可以用{整数}的形式来指定分割执
行的次数。
-s 使命令进入静默模式,不打印其他信息。
-n 指定分割后的文件名后缀的数字个数,例如01、02、03等。
-f 指定分割后的文件名前缀(在上面的例子中,server就是前缀)
-b 指定后缀格式。例如 %02d.log ,类似于C语言中 printf 的参数格式。在这里文件名=
前缀+后缀= server + %02d.log
因为分割后的第一个文件没有任何内容(匹配的单词就位于文件的第一行中),所以我们删
除了server00.log

 

转载于:https://www.cnblogs.com/Vince-blogs/p/9310452.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值