linux 101 hacks 3null 改文件大小写 xargs

禁止标准输出和错误信息的输出

当我们调试 shell 脚本的时候,我们往往不希望看到标准输出和标准错误的信息。我们可以使
用/dev/nulll 来禁止标准错误的信息。

将标准输出重定向到/dev/null
当你调试 shell 脚本的时候不想看输出,只想看错误信息的时候,这个命令会非常有用。

# cat file.txt > /dev/null
# ./shell-script.sh > /dev/null

用“2>/dev/null”禁止错误输出
当你只想看标准输出,而不想看错误信息的时候,这个命令会非常的有用。

# cat invalid-file-name.txt 2> /dev/null
# ./shell-script.sh 2> /dev/null

join 命令

join 命令可基于两个文件的共同项,把他们合并起来。
在下例中,我们有两个文件,分别是 employee.txt 和 salary,他们拥有共同的项-
employee-id。所以我们基于 employee-id 项,将两个文件合并起来。

说实话,非要合并的话,我情愿用awk

$ cat employee.txt
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
$ cat bonus.txt
100 $5,000
200 $500
300 $3,000
400 $1,250
$ join employee.txt bonus.txt
100 Jason Smith $5,000
200 John Doe $500
300 Sanjay Gupta $3,000
400 Ashok Sharma $1,250

改变字符的大小写

卧槽,这个神奇啊

将一个文件内容全部转换成大写字母

$ cat employee.txt
100 Jason Smith
200 John Doe
300 Sanjay Gupta
400 Ashok Sharma
$ tr a-z A-Z < employee.txt
100 JASON SMITH
200 JOHN DOE
300 SANJAY GUPTA
400 ASHOK SHARMA

将一个文件内容全部转换成小写字母

$ cat department.txt
100 FINANCE
200 MARKETING
300 PRODUCT DEVELOPMENT
400 SALES
$ tr A-Z a-z < department.txt
100 finance
200 marketing
300 product development
400 sales

注意以上改了都只是标准输出,原文件都还没改,后面可加 > 输出到文件

xargs 命令

xargs 是一个非常强大的命令,可以取一个命令的输出作为另一个命令的参数。下面就是几个
关于如何有效使用 xargs 命令的实例

这个xargs我还没怎么看的懂,先mark

当你使用 rm 命令去删除很多的文件时,你可能会得到错误信息: “/bin/rm Argument
list too long – Linux” 。这时可以用 xargs 来避免这个问题

find ~ -name ?*.log‘ -print0 | xargs -0 rm –f

获得/etc 下所有以.conf 结尾的文件。可以有多种方法获得如下结果。以下命令仅仅为了帮助
大家理解如何使用 xargs.find 命令的输入结果一个接一个的传递给 xargs,作为 ls -l 的参数。

# find /etc -name "*.conf" | xargs ls –l

当你想下载一些 URL,这些 URL 都保存在一个文件里,你可以以如下的方式使用 xargs 命令

# cat url-list.txt | xargs wget –c

找出所有的.jpg 格式的图片,并将其归档。

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

将所有的 jpg 图片文件复制到外置的硬盘中

ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory
时间: 2024-10-08 20:04:38

linux 101 hacks 3null 改文件大小写 xargs的相关文章

linux 101 hacks 第一章cd命令

本系列来源于<linux 101 hacks>,作者还写了其他101 hacks教程,读了几章,觉得技巧都还不错,很实用,做个总结收藏. cdpath 设置基目录 [[email protected] ~]# pwd /home/ramesh [[email protected]-db ~]# cd mail -bash: cd: mail: No such file or directory [注: 以上试图进入当前目录下的 mail 子目录] [[email protected]-db ~

linux 101 hacks 2date,grep,find

感觉挨个按着作者来的太蠢了,我还是放自己觉得不错的东西把 用特定格式显示当前时间 以下的方法可以用各种不同的格式来显示当前时间: $ date Thu Jan 1 08:19:23 PST 2009 $ date --date="now" Thu Jan 1 08:20:05 PST 2009 $ date --date="today" Thu Jan 1 08:20:12 PST 2009 $ date --date='1970-01-01 00:00:01 UT

头文件大小写问题的脚本解决方案

linux的文件名是大小写敏感的,所以,我们要将代码中include的头文件大小写做个转换. 手动修改——当我没说…… 用脚本去解决,之前我用perl写过这样功能的脚本,但是时间久远,我已经找不到了. 简单分析一下,大概是一下几步 找到所有的被包含过的头文件,grep/sort/uniq 对每一个头文件,如果存在,则不处理 如果不存在,则忽略大小写find -iname,这样会有三种不同的结果,找不到,找到一个和找到多个,将结果分别记录在不同的文件,作为输出结果 对于找不到的,这个可能是系统文件

Linux查找并删除重复文件的命令行fdupes工具,dupeGuru图形工具

查了几十个网页,找到这个接近满意的解决方案http://unix.stackexchange.com/questions/146197/fdupes-delete-files-aft... 不过正则里面的叹号好像不能起到清除空行的效果,改为d;fdupes --recurse A/ B/ | sed '/^A/d; /^$/d; s/.*/"&"/' | xargs rm 但还有个小问题,如果A里面有重复的文件,但这文件不在B中,fdupes也是会列为结果,导致误删,要再想想

Linux之SElinux安全上下文件(1)

Linux之SElinux安全上下文件(1) SELinux:Secure Enhanced Linux,是美国国家安全局(NSA=The National Security Agency)和SCC(Secure Computing Courporation)开发的LInux的一个强制控制的安全模块.2000年以GNU GPL发布,Linux内核2.6版本后继承在内核中. 访问控制类别: DAC:Discretionary Access Control 自由访问控制 MAC:Mandatory

Linux网络服务04——FTP文件传输服务

Linux网络服务04--FTP文件传输服务 一.FTP连接及传输模式 1.控制连接:TCP 21,用于发送FTP命令信息 2.数据连接:TCP 20,用于上传.下载数据 3.数据连接的建立类型: (1)主动模式:服务器主动发起数据连接 首先由客户端向服务端的21端口建立FTP控制连接.当需要传输数据时,客户端以PORT命令告知服务器"我打开了某端口,你过来连接我",预算服务器从20端口向客户端的该端口发送请求并建立数据连接. (2)被动模式:服务器被动等待数据连接 如果客户端所在网络

Linux命令工具基础02 文件及目录管理

文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理有太多的工具供我们使用,在本章中只是点到即止,后面会有专门的一章来介绍文本的处理工具: 有时候,需要给文件创建一个别名,我们需要用到ln,使用这个别名和使用原文件是相同的效果: 创建和删除 创建:mkdir 删除:rm 删除非空目录:rm -rf file目录 删除日志 $rm *log 等价: $

linux下为目录和文件设置权限,

linux下为目录和文件设置权限,包括子目录的循环递归设置 chmod  命令可以改变所有子目录的权限,下面有2种方法 改变一个文件的权限: chmod mode file|dir 改变所有子目录的权限: chmod mode dir -R                  注意后面加了个-R参数 参数就是权限模式 mode = 777 or 752 ,666,,, mode 的三个数字,分别表示owner,group,others所具有的权限. 1 = x 执行 2 = w 写 4 = r 读

linux查找特定类型的文件中是否包含特定字段

shell是个好东西,极大的方便了查询工作,之前遇到一个问题,查询包含有特定字段的特定文件,经过查询,命令如下: 1 find . -type f -name '*.cpp' print|xargs grep -r '#include' -l 上述命令的意思是查询包含有 '#include' 字符的 cpp文件,并给出文件名列表.具体需要熟悉find 和grep命令和各个参数的意思. 参考链接:http://blog.sina.com.cn/s/blog_691a84f301015khx.htm