cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。
cat命令的全称:concatenate files and print on the standard output
1,查看文件内容主要用法:
1、cat f1.txt,查看f1.txt文件的内容。
2、cat -n f1.txt,查看f1.txt文件的内容,并且由1开始对所有输出行进行编号。
3、cat -b f1.txt,查看f1.txt文件的内容,用法与-n相似,只不过对于空白行不编号。
4、cat -s f1.txt,当遇到有连续两行或两行以上的空白行,就代换为一行的空白行。
5、cat -E f1.txt,在每行的最后展示$符号;就是无论你输入了什么,屏幕会直接显示你刚才输入的内容,并且在每行最后用$符号结尾;
6、cat f1.txt f2.txt,同时显示f1.txt和f2.txt文件内容,注意文件名之间以空格分隔,而不是逗号。
7、cat -n f1.txt>f2.txt,对f1.txt文件中每一行加上行号后然后写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
8、cat -n f1.txt>>f2.txt,对f1.txt文件中每一行加上行号后然后追加到f2.txt中去,不会覆盖原来的内容,文件不存在则创建它。
9、cat -T:展示Tabs键;如果你的文档里含有Tabs键,他会以^I 的样式展示。
10、cat -A 表示展示所有,等同于-vET。
实例1,使用cat输入文件内容
[gudong@CentOS7.4-1 test20200426]$cat t1.txt
haha
gagag
[gudong@CentOS7.4-1 test20200426]$
[gudong@CentOS7.4-1 test20200426]$cat >>t1.txt
gudong
this is file
gg ddd
gggd ^C
[gudong@CentOS7.4-1 test20200426]$
[gudong@CentOS7.4-1 test20200426]$
[gudong@CentOS7.4-1 test20200426]$cat t1.txt
haha
gagag
gudong
this is file
gg ddd
[gudong@CentOS7.4-1 test20200426]$
实例2,cat -A
[gudong@CentOS7.4-1 test20200426]$cat -A t1.txt
haha$
$
gagag$
gudong$
^I$
this is file $
gg^Iddd$
实例3,cat -E
[gudong@CentOS7.4-1 test20200426]$cat -E t1.txt
haha$
$
gagag$
gudong$
$
this is file $
gg ddd$
[gudong@CentOS7.4-1 test20200426]$
实例4,cat -n
[gudong@CentOS7.4-1 test20200426]$cat -n t1.txt
1 haha
2
3 gagag
4 gudong
5
6 this is file
7 gg ddd
[gudong@CentOS7.4-1 test20200426]$
实例5,cat 结合more实现分页查看
[gudong@CentOS7.4-1 ~]$cat mysqld | more
#!/bin/bash
#FileName: mysqld
port=3306
mysql_user="root"
#密码
mysql_pwd=""
#程序路径
cmd_path="/usr/bin"
mysql_basedir="/mysqldb"
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf &> /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
fi
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 2
function_start_mysql
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
--More--
2,创建文件以及写入文件内容的用法:
注意:创建文件的时候要设置文件结束标志,也就是<<EOF,可以把EOF换成别的字符,注意是大小写敏感的,当文件内容写完之后要输入结束标志EOF
2.1 多个文件内容合并
[gudong@CentOS7.4-1 test20200426]$cat > f1.txt
f1
^C
[gudong@CentOS7.4-1 test20200426]$cat > f2.txt
f2
^C
[gudong@CentOS7.4-1 test20200426]$
[gudong@CentOS7.4-1 test20200426]$cat f1.txt
f1
[gudong@CentOS7.4-1 test20200426]$cat f2.txt
f2
[gudong@CentOS7.4-1 test20200426]$
[gudong@CentOS7.4-1 test20200426]$cat f1.txt f2.txt >f3.txt
[gudong@CentOS7.4-1 test20200426]$cat f3.txt
f1
f2
[gudong@CentOS7.4-1 test20200426]$
[gudong@CentOS7.4-1 test20200426]$cat f1.txt
dsdsds
fdfdfdgfdg
ddd fdfd
dsdsds
[gudong@CentOS7.4-1 test20200426]$cat f2.txt
f2
[gudong@CentOS7.4-1 test20200426]$
[gudong@CentOS7.4-1 test20200426]$cat f1.txt f2.txt >f4.txt
[gudong@CentOS7.4-1 test20200426]$cat f4.txt
dsdsds
fdfdfdgfdg
ddd fdfd
dsdsds
f2
[gudong@CentOS7.4-1 test20200426]$
2.2 EOF 追加文件内容的用法
[gudong@CentOS7.4-1 test20200426]$cat >>log.txt <<EOF
> zhe file log.txt
> haha
>
> gsggs
> dsdsdsds
> eof
>
> dfd
> eof
> EOF
[gudong@CentOS7.4-1 test20200426]$cat log.txt
zhe file log.txt
haha
gsggs
dsdsdsds
eof
dfd
eof
[gudong@CentOS7.4-1 test20200426]$