linux管道符

linux的管道可以用于linux程序之间,linux命令之间以及linux程序和命令之间的通信。
在shell中使用管道的格式:

command1 | command2 | command3

代表command1的标准输出作为command2的标准输入使用,而command2的标准输出又作为command3的标准输入使用。
实例1:
匹配字符串中的linux:

echo "hello,linux" | grep "linux"

重定向

重定向输入的格式为:
[n] < file
表示将输入从文件描述符为n的文件重定向到file。
重定向输出的格式为:
[n] > file
表示将输出文件描述符为n的文件重定向到file。
实例1:
使用管道符将test1的内容作为标准输入,输出到test2中。

cat test1 | cat > test2

实例2:
通过重定向将test1的内容作为标准输入,重定向到test3中:

cat > test3 < test1

实例3:
查看一个当前目录下不存在的文件test4,将给出的错误信息重定向到test5中:

ls test4 |& cat > test5

tee:用于读取标准输入,并将其写入到标准输出和文件中

  • -a:附加到已有文件内容的后面,而不是覆盖
  • -i:忽略中断信号

实例1:
把tets1的内容写入到test2中

tee test1 test2

实例2:
把当前文件夹下的文件列表打印到out.txt中

ls | tee out.txt

排序

sort:用于将文本内容以行为单位进行排序
参数:

  • -u:去除重复行
  • -t:指定分隔字符
  • -o:输出到指定文件
  • -t:设置行中的分隔符,默认为空格
  • -k:指定使用某一行进行排序
  • -r:修改默认的升序排序为降序

实例:
使用test1中的年龄进行排序,并保存到test2中

sudo vim test1
liuyi man 30
wanger man 22
zhangsan women 30
lisi wowen 18
:wq
sort -k 3 -o test2 test1

在这里插入图片描述

合并

paste:将多个文件以列对列的方式加以合并
实例:

sudo vim num1
1
2
:wq
sudo vim let1
a
b
c
:wq
paste num1 let2

在这里插入图片描述
join:将多个文件中有相同特征的行以类似于paste的方式进行组合。
实例:

sudo vim file1
a 1
b 2
e 5
:wq
sudo vim file2
a X
e Y
f Z
:wq
join file1 file2

在这里插入图片描述

tr:将标准输入复制到标准输出,在这个过程中可以执行转译或删除操作。
tr set1 [set2]
set1:表示需要转换的或者删除的原字符集。
set2:表示为转换的目标字符集
实例:
将打印到标准输入的helloworld的小写字母全部转换成大写字母:

echo "helloworld" | tr a-z A-Z

xargs:可以从标准输入构建和执行命令

  • -a:使用该参数指定从文件中读取,而不是标准输入
  • -d:自定义定界符
  • -n:每行的最多参数个数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值