- 浏览: 802538 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (360)
- Java (101)
- JPA/Hibernate (10)
- Spring (14)
- Flex/BlazeDS (37)
- Database (30)
- Lucene/Solr/Nutch (0)
- Maven/Ant (25)
- CXF/WebService (3)
- RPC/RMI/SOAP/WSDL (1)
- REST (6)
- TDD/BDD/JUnit (1)
- Servlet/JSP (2)
- AI/MachineLearning (3)
- Resource (1)
- 字符编码 (2)
- OOA/OOPS/UML (5)
- DesignPattern (8)
- 算法与数据结构 (11)
- Web&App Server (13)
- 并发&异步&无阻塞 (7)
- Entertainment (4)
- JavaScript/ExtJS (45)
- CodeStyle&Quality (1)
- svn/git/perforce (8)
- JSON (2)
- JavaScriptTesting (4)
- Others (6)
- RegularExpression (2)
- Linux/Windows (12)
- Protocal (2)
- Celebrities (1)
- Interview (1)
- 计算机语言 (1)
- English (2)
- Eclipse (5)
- TimeZone/时区 (1)
- Finance (1)
- 信息安全 (1)
- JMS/MQ (2)
- XSD/XML/DTD (3)
- Android (4)
- 投资 (3)
- Distribution (3)
- Excel (1)
最新评论
-
qdujunjie:
如果把m换成具体的数字,比如4或者5,会让读者更明白
m阶B树中“阶”的含义 -
java-admin:
不错,加油,多写点文章
关于Extjs的mixins和plugin -
xiehuaidong880827:
你好,我用sencha cmd打包完本地工程后,把app.js ...
ExtJS使用Sencha Cmd合并javascript文件为一个文件 -
KIWIFLY:
lwpan 写道inverse = "true&qu ...
Hibernate中什么时候使用inverse=true -
luedipiaofeng:
good
消除IE stop running this script弹出框
Linux查看一台服务器有多少个cpu、每个cpu有几个核心、每个核心有几个线程
查看物理cpu个数
grep 'physical id' /proc/cpuinfo | sort -u | wc -l
查看每个cpu核心数量
grep 'core id' /proc/cpuinfo | sort -u | wc -l
查看线程总数
grep 'processor' /proc/cpuinfo | sort -u | wc -l
https://jingyan.baidu.com/article/63acb44a81001361fcc17e21.html
查看压缩文件内容命令:zcat
zcat命令能够不用将.gz的压缩文件解压就能查看里面的内容
# zcat file.gz
获取当前日期,日期加减后的值
display today with yyyy-mm-dd format
date +%Y-%m-%d
display the date which is 5 days ago than today
date --date="5 days ago" +%Y-%m-%d
set 5 days ago to a variable
exportedDateVar = $(date --date="5 days ago" +%Y-%m-%d)
创建文件
Depending on what you want the file to contain:
touch /path/to/file for an empty file
somecommand > /path/to/file for a file containing the output of some command.
eg: grep --help > randomtext.txt
echo "This is some text" > randomtext.txt
nano /path/to/file or vi /path/to/file (or any other editor emacs,gedit etc)
It either opens the existing one for editing or creates & opens the empty file to enter, if it doesn't exist
执行脚本的方式(Execute shell script)
1)对于ksh,如果希望脚本在当前shell而不是subshell中执行,
用"dot space dot slash"即". ./"
. ./file.sh
2) Execute Shell Script Using Source Command
source file.sh
3) Execute Shell SCript by Specifying the Interpreter
csh file.sh
4) Execute Shell Script Using File Name
./file.sh
or
/a/b/c/file.sh
按时间升序列出文件
ls -lt
按时间降序列出文件
ls -ltr
AWK命令快速入门
http://blog.csdn.net/hello_hwc/article/details/39528879
查找命令
递归列出指定目录下的所有目录和文件
find 指定目录
1. find
find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
find的使用格式如下:
$ find <指定目录> <指定条件> <指定动作>
- <指定目录>: 所要搜索的目录及其所有子目录。默认为当前目录。
- <指定条件>: 所要搜索的文件的特征。
- <指定动作>: 对搜索结果进行特定的处理。
如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
find的使用实例:
$ find . -name 'my*'
搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。
$ find . -name 'my*' -ls
搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
$ find . -type f -mmin -10
搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。
2. locate
locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
locate命令的使用实例:
$ locate /etc/sh
搜索etc目录下所有以sh开头的文件。
$ locate ~/m
搜索用户主目录下,所有以m开头的文件。
$ locate -i ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
3. whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis命令的使用实例:
$ whereis grep
4. which
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which命令的使用实例:
$ which grep
5. type
type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。
type命令的使用实例:
$ type cd
系统会提示,cd是shell的自带命令(build-in)。
$ type grep
系统会提示,grep是一个外部命令,并显示该命令的路径。
$ type -p grep
加上-p参数后,就相当于which命令。
6. examples
查找当前目录下的以dz开头的目录
access_log 2>/dev/null表示不显示permmisiondenied 错误信息。
find . -type d -name 'dz*' access_log 2>/dev/null
7. grep or egrep
ps -ef | grep 'java'
Reference: Linux的五个查找命令
http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html?bsh_bid=223636115
Grep命令详解-9个经典使用场景
http://blog.csdn.net/hello_hwc/article/details/40017833
Finding all files containing a text string on Linux
http://stackoverflow.com/questions/16956810/finding-all-files-containing-a-text-string-on-linux
Do the following:
grep -rnw 'directory' -e "pattern"
-r or -R is recursive, -n is line number and -w stands match the whole word. -l (letter L) can be added to have just the file name.
Along with these, --exclude or --include parameter could be used for efficient searching. Something like below:
grep --include=\*.{c,h} -rnw 'directory' -e "pattern"
This will only search through the files which have .c or .h extensions. Similarly a sample use of --exclude:
grep --exclude=*.o -rnw 'directory' -e "pattern"
Above will exclude searching all the files ending with .o extension. Just like exclude file it's possible to exclude/include directories through --exclude-dir and --include-dir parameter, the following shows how to integrate --exclude-dir:
grep --exclude-dir={dir1,dir2,*.dst} -rnw 'directory' -e "pattern"
This works for me very well, to achieve almost the same purpose like yours.
For more options :
man grep
Editing a previous command line
参考文档:http://unixhelp.ed.ac.uk/shell/ksh_hist.html
To edit a previous command line use the shell command fc (fix command) command.
Delete Files Older Than x Days on Linux
The find utility on linux allows you to pass in a bunch of interesting arguments, including one to execute another command on each file. We’ll use this in order to figure out what files are older than a certain number of days, and then use the rm command to delete them.
Command Syntax
find /path/to/files* -mtime +5 -exec rm {} \;
Note that there are spaces between "rm", "{}", and "\;"
Explanation
The first argument is the path to the files. This can be a path, a directory, or a wildcard as in the example above. I would recommend using the full path, and make sure that you run the command without the exec rm to make sure you are getting the right results.
The second argument, -mtime, is used to specify the number of days old that the file is. If you enter +5, it will find files older than 5 days.
The third argument, -exec, allows you to pass in a command such as rm. The {} \; at the end is required to end the command.
This should work on Ubuntu, Suse, Redhat, or pretty much any version of linux.
To delete all files and directories within the current directory
find . -mtime +3 | xargs rm -Rf
Or alternatively, more in line with the OP's original command:
find . -mtime +3 -exec rm -Rf -- {} \;
fc -e editor -lnr first last
This will open the commands from the history list as specified in the range first to last. When you exit from the editor the command(s) will be run.
Setting the environment variable FCEDIT to the editor that you prefer will save you specifying it on the command line. For example:
FCEDIT=emacs; export FCEDIT
Examples of editing previous command lines
To list commands from the history list:
fc -l 27 34
This lists commands 27 through 34 from the history list. Using the -n option instead of -l prevents the history numbers from being listed.
To edit a command from the history list:
fc -e emacs 32
This will start the EMACS editor together with the contents of command number 32. You can then edit the command and exit the editor to run the command.
To edit several commands from the history list:
fc -e vi 27 35
This will start the vi editor and open a temporary file containing commands 27 through 35. You can then edit the commands and exit the editor to run the commands.
查看本系统共支持哪些shell
cat /etc/shells
两个快捷键
CTRL+L 清屏
CTRL+U 清除一行中(光标前的部分)
命令别名
alias:查看当前的别名
输入输出重定向
将输出的内容重定向到/dev/null中,这里可以理解/dev/null为一个黑洞,重定向到这里的东西都不会打印出来.
符号 >> 是清空原内容,然后写入
符号 > 是在原内容的末尾追加
输入重定向
符号 <
/dev/tty 这个文件常用来重定向到一个终端,对输入来说十分有用
read password < /dev/tty 从终端读取密码
错误输出重定向,只有在遇到错误的时候才进行重定向
常用的处理是生成相关的log文件
cp –R /usr /backup/ 2> /bak.error
wc命令用来统计多少行,多少个单词,多少个字符
wc #会依次输出 行数,单词数,字符个数
wc -l #行数
wc -w#单词数
wc -c #字符个数
文件行数
1) sed -n '$=' filename
2) wc -l filename
命令连接符
&& 前一个命令执行成功,后一个命令才会执行
|| 前一个命令执行失败,后一个命令才会执行
命令替换符号
在键盘tab上边的那个"`",注意不是引号
遇到命令替换符号,会把命令替换符号内的语句当成命令执行,然后把执行结果返回给上一层
ls -l `which bash`
读取文件的开头或者结尾
head -n 文件前几行
tail -n file 文件后几行
tail -f file 持续观察一个文件的结尾,适合动态观察log文件
查看帮助命令
//Take the shell command "find" as an example:
1)man find
2)info find
3)find --help
4)whatis find
//other commands
which find //show the current verion we are using
whereis find//show the place which the find locates
tar 命令
Examples
tar -cf archive.tar file1 file2
Create archive archive.tar containing files file1 and file2.
tar -tvf archive.tar
List the files in the archive archive.tar verbosely.
tar -xf archive.tar
Extract the files from archive archive.tar.
tar -xf archive.tar -C /target/directory
解压缩到指定目录
tar -xzvf archive.tar.gz
Extract the files from gzipped archive archive.tar.gz verbosely.
重命名单个文件
use mv command to rename a single file
rename 重命名多个文件,大小些转换
参考:
http://blog.csdn.net/zgl_dm/article/details/6627411
http://www.computerhope.com/unix/rename.htm
Linux 下的 rename 命令有两个版本:
C语言版本
Perl语言版本
其中,C语言版本的命令如下:
rename 原字符串 新字符串 文件名
样例1: 目录 test 下存在两个文件: a_01 、a_02,若需要将文件名中的 a 替换为 b, 其他部分保持不变,则
(1) 若 当前位于 test 目录下,则执行 rename a b *
(2) 若当前位于test的父目录,则执行 rename a b test/*
Perl 语言版本的命令如下:
rename ‘s/原字符串/新字符串/’ 文件名
样例2: 题目如样例1,则
(1) 若当前位于 test 目录下,则执行 rename ‘s/a/b/’ *
(2) 若当前位于test的父目录,则执行 rename 's/a/b' test/*
样例3:若改用脚本,可如下:
[html] view plaincopy
find -name "a*" -print |
while read name; do
echo $name
rename 's/a/b/' $name
done
样例4:
rename 'y/A-Z/a-z/' *
Rename files such that all uppercase letters are changed to their lowercase equivalents.
最后,该如何判断rename是哪个版本,可通过 man rename 查看。
若第一行为如下,则是C语言版本的,
RENAME(1) Linux Programmer’s Manual RENAME(1),
若出现
RENAME(1) Perl Programmers Reference Guide RENAME(1)
则为 Perl 版本的。
df:The df command reports the amount of available disk space being used by file systems. df command is able to display the physical server name
1. Check File System Disk Space Usage
The “df” command displays the information of device name, total blocks, total disk space, used disk space, available disk space and mount points on a file system.
[root@tecmint ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/cciss/c0d0p2 78361192 23185840 51130588 32% /
/dev/cciss/c0d0p5 24797380 22273432 1243972 95% /home
/dev/cciss/c0d0p3 29753588 25503792 2713984 91% /data
/dev/cciss/c0d0p1 295561 21531 258770 8% /boot
tmpfs 257476 0 257476 0% /dev/shm
2. Display Information of all File System Disk Space Usage
The same as above, but it also displays information of dummy file systems along with all the file system disk usage and their memory utilization.
[root@tecmint ~]# df -a
3. Show Disk Space Usage in Human Readable Format
[root@tecmint ~]# df -h
4. Display Information of /home File System
To see the information of only device /home file system in human readable format use the following command.
[root@tecmint ~]# df -hT /home
5. Display Information of File System in Bytes
To display all file system information and usage in 1024-byte blocks, use the option ‘-k‘ (e.g. –block-size=1K) as follows.
[root@tecmint ~]# df -k
6. Display Information of File System in MB
To display information of all file system usage in MB (Mega Byte) use the option as ‘-m‘.
[root@tecmint ~]# df -m
7. Display Information of File System in GB
To display information of all file system statistics in GB (Gigabyte) use the option as ‘df -h‘.
[root@tecmint ~]# df -h
8. Display File System Inodes
Using '-i' switch will display the information of number of used inodes and their percentage for the file system.
[root@tecmint ~]# df -i
9. Display File System Type
If you notice all the above commands output, you will see there is no file system type mentioned in the results. To check the file system type of your system use the option ‘T‘. It will display file system type along with other information.
[root@tecmint ~]# df -T
10. Include Certain File System Type
If you want to display certain file system type use the ‘-t‘ option. For example, the following command will only display ext3 file system.
[root@tecmint ~]# df -t ext3
11. Exclude Certain File System Type
If you want to display file system type that doesn’t belongs to ext3 type use the option as ‘-x‘. For example, the following command will only display other file systems types other than ext3.
[root@tecmint ~]# df -x ext3
du:Report the amount of disk space used by a file or files.
显示文件或目录大小
whatis du
output: estimate file space usage
so du may refer to directory space usage
列出当前目录下所有子目录的大小
du -sh *
查看一个指定目录的大小
du -sh <directory>
查看当前目录的大小
du -lh
du -sh 文件夹/文件
du -sk 文件夹/文件
du -sm 文件夹/文件
查看指定文件 或者文件夹 的大小
sh/sk/sm 的区别:
sh 根据文件大小显示为nK/nM/nG eg. [4.0K xxx.log]
sk 根据文件大小显示为nK eg. [4.3K xxx.log]
sm 根据文件大小显示为nM eg. [7M xxx.log]
列出当前目录下所有子目录和文件, 其中有一项为大小
ls -lh
案例:
1. du -sh
查看当前文件夹大小
如下:
Info代码
$du -sh
7.0M xxx.log
$du -sh 7.0M xxx.log
2. du -sh * | sort -n
列出当前文件夹下的所有文件夹及其大小,并按照文件夹大小排序
如下:
Info代码
$du -sh * | sort -n
4.0K xxx.log
4.0K xxx.log
4.4M xxx.log
4.8M xxx.log
$du -sh * | sort -n 4.0K xxx.log 4.0K xxx.log 4.4M xxx.log 4.8M xxx.log
https://www.ibm.com/developerworks/community/blogs/58e72888-6340-46ac-b488-d31aa4058e9c/entry/estimate_file_space_usage_with_du_command_in_linux62?lang=en
Linux下cut命令用法详解
有时我们经常会遇到这样一些问题:有一页电话号码薄,上面按顺序规则地写着人名、家庭住址、电话、备注等,此时我们只想取出所有人的名字和其对应的电话号码,你有几种方法可以实现呢?
确实这种纵向定位的方式用常规办法难以实现,这时,cut就可以大显身手了。
What’s cut?
cut命令可以从一个文本文件或者文本流中提取文本列,主要用来提取各种各样的数据。
命令用法:
cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-d delimiter][-s][file ...]
上面的 -b、-c、-f分别表示字节、字符、字段(即byte、character、field);
list表示-b、-c、-f操作范围,-n常常表示具体数字;
file表示的自然是要操作的文本文件的名称;
delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;
-s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)
上面三种方式中,表示从指定的范围中提取字节(-b)、或字符(-c)、或字段(-f)。
范围的表示方法:
N
只有第N项
N-
从第N项一直到行尾
N-M
从第N项到第M项(包括M)
-M
从一行的开始到第M项(包括M)
-
从一行的开始到结束的所有项
英文字符格式文本提取实例
cut -cchars file
如:
-c5 提取第5个字符
-c5- 提取第5个字符以后的字符
-c1,5,12 提取多个字符,中间用“,”符号隔开
-c5-14 提取第5个字符到第14个字符间的字符
http://gan.cublog.cn
[service@dsg tmp]$ cat f.txt
service pts/0 Oct 9 20:27 (211.95.114.235)
service pts/1 Oct 9 21:06 (218.80.203.242)
service pts/2 Oct 9 14:35 (218.80.203.242)
service pts/3 Oct 9 21:07 (218.80.213.242)
service pts/4 Oct 9 21:07 (218.80.213.242)
service pts/5 Oct 9 21:45 (58.31.205.19)
[service@dsg tmp]$ cut -c5 f.txt
i
i
i
i
i
i
[service@dsg tmp]$ cut -c5- f.txt
ice pts/0 Oct 9 20:27 (211.95.114.235)
ice pts/1 Oct 9 21:06 (218.80.203.242)
ice pts/2 Oct 9 14:35 (218.80.203.242)
ice pts/3 Oct 9 21:07 (218.80.213.242)
ice pts/4 Oct 9 21:07 (218.80.213.242)
ice pts/5 Oct 9 21:45 (58.31.205.19)
[service@dsg tmp]$ cut -c1,5,14 f.txt
si0
si1
si2
si3
si4
si5
------------------------------
cut -d -f
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
-f, --fields=LIST
output only these fields; also print any line that contains no
delimiter character, unless the -s option is specified
-d -f 主要用来从某中分隔符中提取数据
如:
[service@dsg tmp]$ cat f.txt
service1:pts/0:Oct 9 20:27: (211.95.114.235)
service2:pts/1:Oct 9 21:06: (218.80.203.242)
service3:pts/2:Oct 9 14:35: (218.80.203.242)
service4:pts/3:Oct 9 21:07: (218.80.213.242)
service5:pts/4:Oct 9 21:07: (218.80.213.242)
service6:pts/5:Oct 9 21:45: (58.31.205.19)
[service@dsg tmp]$ cut -d: -f1 f.txt
service1
service2
service3
service4
service5
service6
[service@dsg tmp]$ cut -d: -f2 f.txt
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
[service@dsg tmp]$ cut -d: -f3 f.txt
Oct 9 20
Oct 9 21
Oct 9 14
Oct 9 21
Oct 9 21
Oct 9 21
[service@dsg tmp]$ cut -d: -f5 f.txt
(211.95.114.235)
(218.80.203.242)
(218.80.203.242)
(218.80.213.242)
(218.80.213.242)
(58.31.205.19)
[service@dsg tmp]$ cut -d: -f9 f.txt
[service@dsg tmp]$ cut -d: -f1,4 f.txt #提取1和4列数据
service1:27
service2:06
service3:35
service4:07
service5:07
service6:45
Given that the fields are separated by tabs, you should use the -f option to cut instead:
如果文件使用tab键隔开就直接使用-f就可以了,-d的默认分隔符号就为tab键。
中文文本提取实例
在这个文件中,每个汉字都是用半角空格分隔的。
chinese.txt
春天来了,万物复苏了。
让我们,一起去欣赏春的魅力吧。
Cut -c-1 chinese.txt right
Cut –b-2 chinese.txt right
Cut –b-1 chinese.txt wrong
汉字本身是双字节的,cut –c把汉字“春”当成一个字符来处理,而cut –b是以字节来处理,把“春”拆成了两个字节,结果是字符被“切成两半”,因此无法正常显示。
Paste命令
该命令主要用来将多个文件的内容合并,与cut命令完成的功能刚好相反。
使用事例:
$ cat names
Tony
Emanuel
Lucy
Ralph
Fred
gan.cublog.cn
$ cat numbers
(307) 555-5356
(212) 555-3456
(212) 555-9959
(212) 555-7741
(212) 555-0040
$ paste names numbers 将两个文件合并,他们中间用tab键分隔开
Tony (307) 555-5356
Emanuel (212) 555-3456
Lucy (212) 555-9959
Ralph (212) 555-7741
Fred (212) 555-0040
gan.cublog.cn
$ cat addresses
55-23 Vine Street, Miami
39 University Place, New York
17 E. 25th Street, New York
38 Chauncey St., Bensonhurst
17 E. 25th Street, New York
gan.cublog.cn
$ paste names addresses numbers
Tony 55-23 Vine Street, Miami (307) 555-5356
Emanuel 39 University Place, New York (212) 555-3456
Lucy 17 E. 25th Street, New York (212) 555-9959
Ralph 38 Chauncey St., Bensonhurst (212) 555-7741
Fred 17 E. 25th Street, New York (212) 555-0040
$ paste -d'+' names addresses numbers 他们中间用指定的'+'符号隔开
Tony+55-23 Vine Street, Miami+(307) 555-5356
Emanuel+39 University Place, New York+(212) 555-3456
Lucy+17 E. 25th Street, New York+(212) 555-9959
Ralph+38 Chauncey St., Bensonhurst+(212) 555-7741
Fred+17 E. 25th Street, New York+(212) 555-0040
$ paste -s names 将多行数据合并到一行,他们间用tab键隔开
Tony Emanuel Lucy Ralph Fred
linux中批量替换文本中字符串
https://www.cnblogs.com/nkwy2012/p/6365714.html
批量替换文件内容,文件中字符串
一)通过vi编辑器来替换。
vi/vim 中可以使用 :s 命令来替换字符串。
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/(等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g(等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
(二)直接替换文件中的字符串。(此法不用打开文件即可替换字符串,而且可以批量替换多个文件。)
1.perl命令替换,参数含义如下:
-a 自动分隔模式,用空格分隔$_并保存到@F中。相当于@F = split ”。分隔符可以使用-F参数指定
-F 指定-a的分隔符,可以使用正则表达式
-e 执行指定的脚本。
-i<扩展名> 原地替换文件,并将旧文件用指定的扩展名备份。不指定扩展名则不备份。
-l 对输入内容自动chomp,对输出内容自动添加换行
-n 自动循环,相当于 while(<>) { 脚本; }
-p 自动循环+自动输出,相当于 while(<>) { 脚本; print; }
用法示例:
perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c
将所有C程序中的foo替换成bar,旧文件备份成.bak
perl -p -i -e "s/shan/hua/g" ./lishan.txt ./lishan.txt.bak
将当前文件夹下lishan.txt和lishan.txt.bak中的“shan”都替换为“hua”
perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2
将每个文件中出现的数值都加一
2.sed命令下批量替换文件内容
格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` 文件名
-i 表示inplace edit,就地修改文件
-r 表示搜索子目录
-l 表示输出匹配的文件名
s表示替换,d表示删除
示例:sed -i "s/shan/hua/g" lishan.txt
把当前目录下lishan.txt里的shan都替换为hua
sed的其他用法如下:
1、删除行首空格
sed 's/^[ ]*//g' filename
sed 's/^ *//g' filename
sed 's/^[[:space:]]*//g' filename
2、行后和行前添加新行
行后:sed 's/pattern/&\n/g' filename
行前:sed 's/pattern/\n&/g' filename
&代表pattern
3、使用变量替换(使用双引号)
sed -e "s/$var1/$var2/g" filename
4、在第一行前插入文本
sed -i '1 i\插入字符串' filename
5、在最后一行插入
sed -i '$ a\插入字符串' filename
6、在匹配行前插入
sed -i '/pattern/ i "插入字符串"' filename
7、在匹配行后插入
sed -i '/pattern/ a "插入字符串"' filename
8、删除文本中空行和空格组成的行以及#号注释的行
grep -v ^# filename | sed /^[[:space:]]*$/d | sed /^$/d
发表评论
-
Win7 双屏显示,向左拓展
2017-07-27 13:37 1384http://jingyan.baidu.com/articl ... -
netstat -ano 查看机器端口占用情况
2017-07-25 18:42 1236如何使用netstat –ano|findstr “port” ... -
CPU利用率与Load Average的区别
2017-06-21 14:40 838CPU利用率与Load Average的区别? http:// ... -
Linux如何显示文件指定行数的内容
2017-03-21 20:12 45011. grep命令,比sed命令好用 http://www. ... -
taskkill命令
2017-01-12 13:51 904windows命令行下强制关闭所有chrome进程 taskk ... -
给shell脚本传参数Passing arguments to a shell script
2016-01-26 18:34 1522Simple explanation $0 is the n ... -
Mount point挂载点, Andrew File System
2016-01-20 15:11 837A mount point is a directory in ... -
Linux环境(Environment)设置相关命令
2014-08-24 17:20 8753参考链接: http://www.cyberciti.b ... -
Linux vi 命令大全
2014-05-14 14:38 1188Vim (vi) 是Linux中功能强 ... -
硬链接和软链接的区别和联系
2014-05-14 14:30 1587首先要弄清楚,在Linux系 ... -
创建带有当前时间戳的目录
2014-01-13 11:36 1843mkdir "test`date +"%y ...
相关推荐
以下是一些关于Linux常用命令的详细说明: 1. **pwd**:`pwd`(Print Working Directory)命令用于显示当前工作目录,即用户当前所在的目录路径。 2. **cd**:`cd`命令用于切换目录。例如,`cd /`进入根目录,`cd ...
### Linux常用命令详解 #### 一、文件管理 1. **ls**:此命令用于列出当前目录中的文件和子目录。通过使用不同的选项,可以改变其输出格式。 - `-l`:使用长格式列表输出,包括文件权限、拥有者、组、大小等详细...
LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 LINUX常用命令全集 ...
"最全Linux常用命令大全-linux常用命令全集" 本文档对 Linux 中最常用的命令进行了详细的总结和说明,涵盖了文件和目录管理、磁盘空间管理等方面的命令。 文件和目录管理命令 1. `pwd` 命令:显示当前目录 `pwd`...
### Linux常用命令详解知识点 #### 一、命令格式与通配符 - **命令格式**: - **命令**:指定要执行的操作。 - **选项**:改变命令的行为方式,通常以`-`开头,多个选项可以用空格或直接连接的方式给出。 - **...
linux常用命令大全 1. **ls**:列出目录内容 2. **cd**:改变当前目录 3. **pwd**:显示当前工作目录 4. **mkdir**:创建目录 5. **rmdir**:删除空目录 6. **cp**:复制文件或目录 7. **mv**:移动或重命名文件或...
04.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls.mp4 04.1.2 Linux常用命令-文件处理命令-目录处理命令.mp4 04.1.3 Linux常用命令-文件处理命令-文件处理命令.mp4 04.1.4 Linux常用命令-文件处理...
Linux 常用命令大全 Linux 操作系统是一个功能强大且灵活的操作系统,拥有众多实用的命令来帮助用户管理和维护系统。下面是 Linux 中一些常用的命令,旨在帮助用户快速掌握 Linux 操作系统。 TTY 控制台终端 在 ...
Linux常用命令汇总中,首先涉及到的是检查Java开发工具包(JDK)是否已安装以及版本信息。使用命令`java –version`和`javac –version`可以实现该功能。`java –version`用于查看Java运行环境的版本,而`javac –...
LINUX 常用命令语言总结 LINUX 操作系统提供了大量的命令语言,以下是常用的命令语言概述: 1. 远程桌面连接命令:mstsc mstsc 是一种远程桌面连接命令,可以连接到另一台计算机,并在远程桌面上进行操作。 2. ...
Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls Linux常用命令.xls ...
linux常用命令md文件
Linux常用命令全集.CHM Linux vi命令大全.txt liunx命令大全.txt liunx 下如何用命令行设置网络?.txt 请问怎么设置DNS的命令?.txt Red Hat Linux下配置Tomcat+JSP+Apache服务器的步骤.txt Linux 下 Apache 与 ...
linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; linux常用命令大全; ...
"Linux常用命令及实用命令万字总结" 本文档旨在总结Linux系统中常用的命令和实用命令,涵盖了基本的文件管理、目录操作、文件查询、系统管理等方面的命令。 1. ls命令 ls命令是Linux系统中最常用的命令之一,用于...
linux常用命令大全常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用linux常用命令大全.常用...
Linux常用命令是任何使用Linux操作系统的人必须熟悉的工具。这些命令通常通过命令行界面(CLI)执行,是与系统交互的主要方式。以下是一些Linux系统中最常用命令的详细说明: 1. ls命令:用于列出目录内容。ls -l ...
本资料"Linux常用命令全集.zip"包含了丰富的Linux命令知识,旨在帮助用户深入理解并应用这些命令。CHM文档是一种常见的Windows帮助文件格式,它将HTML页面集合在一个文件中,方便用户查阅。 以下是一些主要的Linux...