001

find . -name "*.java" -type f -print -exec ls {} \;
- 命令作为 stdin 输入流
有时候输入输出流无法重定向到时候,需要用xagrs
xargs 可以用来格式化
for example:cat test.txt
output:
1 2 3 4 5
5 6 7 
cat test.txt | xargs -n 2
output:
1 2
3 4
5 5
6 6
....


另外对于xargs -d 参数来说 , -d也常用来作其中的分隔符,xargs默认是以空格为分界符的   -0是参数默认的是以0值字节为分隔符。
for example : echo "splitXsplitXsplitXsplit" | xargs -d X
output:split split split
$$ 返回的是进程号
$# 返回的是参数数目
$* 返回的是参数的一个列表 
$@ 返回的是单个参数


find 命令在于xargs和exec命令结合时,需要注意到是 exec命令 对整个命令参数的长度有限制


eval 表示读取命令两次  例如: eval “cat text.txt” ,"cat test.txt" 此时是一个字符串,eval 第一次读取的是cat test.txt字符串,第二次执行的是cat命令


tr 常用作字符串的转换


for Example:echo "1111 aaaaaa 22222" | tr -d [0-9] 
Output:1111 aaaaaa


echo "11111 aaaaaaa 222222" | tr -d '[0-9]'
Output:aaaaaaa
注意有引号和没引号的区别


另外在用shell进行字符串比较时,最好加上两个中括号 否则容易出错:[[$str1 = $str2]]


当用find命令去查找文件时,且文件名中有空白符,所以此时需要重新设置下风格符IFS
IFS="$(echo -ne "\n\b")"




sort 排序 


sort -k 依赖某个键值进行排序,k是数字 表示对应的列数,uniq 消除重复值




截取字符串




1:$(VAR%.*) 删除%右边的字符串 非贪婪模式 从右向左
2:$(VAR%%.*) 删除%% 右边的字符串  贪婪模式


For Example:
VAR=hack.fun.book.txt
1:hack.fun.book
2:hack


3:$(VAR#.*) 删除#左边的字符串 从左到右
4:$(VAR##.*)
For Example:
VAR=hack.fun.book.txt
1:fun.book.txt
2:hack


交互式输入


#!/bin/bash
#script name test.sh
read -p "Enter number: " no
read -p "Enter name: " name
echo You havae entered $no $name




$echo -e "\1\n\hello\n" | ./test.sh
Result:You hava entered 1,hello








cut 截取字段


-b 表示字节
-c 表示字符
-f 用于定义字段




cut -f 2 test.txt 表示截取第二列
echo "asdsdfdsfsdf" | cut -c3 表示截取第3个字符
echo "asdsdfdsfsdf" | cut -c -3 表示截取从第一个字符到第三个字符
echo "asdsdfdsfsdf" | cut -c 3- 表示从第三个师傅截取到字段结尾



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值