shell脚本

1、shell脚本调试

    sh -x install.sh

2、运行.sh脚本提示 '\r' command not found

    dos2unix install.sh

3、sed [-nefr] [动作] 文件
    参数:
    -n 安静模式,在sed处理的时候,所有来自STDIN的数据都会被输出到终端,加上-n会只输出处理的哪行
    -e 直接在命令列上进行sed动作编辑
    -f 直接将sed的动作写在文件内
    -r sed动作支持延伸的正则表达(默认只是基础正则)
    -i 直接修改文件内容(慎用,尤其是用系统文件做练习的时候)

    动作:
    a append:增加,在当前行的下一行增加
    c   :取代,取代n1到n2之间的行
    d delete:删除
    i 插入,目前行的上一行插入
    p 打印,常常与-n使用
    s 取代,s/old/new/g  ; s#old#new#g
    https://blog.csdn.net/hello_hwc/article/details/40118129

4、cut
    cut命令可以从一个文本文件或者文本流中提取文本列。

    cut语法

    [root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符
    [root@www ~]# cut -c 字符区间            <==用于排列整齐的信息
    选项与参数:
    -d  :后面接分隔字符。与 -f 一起使用;
    -f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
    -c  :以字符 (characters) 的单位取出固定字符区间;

5、echo $ret 和 echo "$ret" 区别
    如果是echo $ret,输出结果为一行,没有换行符
    如果是echo "$ret",输出结果为多行,有换行符

6、linux去掉windows下文件中的\r
    Unix体系里,每行结尾只有“<换行>”,即“\n”; 
    Windows体系里面,每行结尾是“<换行><回 车>”,即“\n\r”。 
    一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行; 
    而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。

    好了,所以我的题目就出在被处理惩罚的文件的每行末尾都有^M符号,而这凡是是看不出来的。可以用”cat -A test.file”号令查看。是以当我想在行尾添加字符的时辰,它老是添加在行首且会覆盖掉本来行首的字符。

    使用vim方式处理 
    在vim命令模式下输入%s/^M$//g

    回车即会自动删除该文件中的所有 ^M 字符。 
    那么,这句命令到底是什么意思呢?% 指匹配整个文件,s 是置换的意思,^M 注意要用 Ctrl + V Ctrl + M 来输入,M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。

    理解了命令的含义,就好变通使用了,比如说,要将某个文件中的 Vim 全部替换成 VIM,则可以使用这样的命令::%s/Vim/VIM/g。

    方法1: 
    在命令模式下:输入:%s/^M//g 然后,回车即可替换

    注,其中”^M”的输入,分别是“Ctrl+v”、“Ctrl+M”键生成的

    方法2:

    使用vi打开文本文件 
    vi dos.txt 
    命令模式下输入 
    :set fileformat=unix 
    :w

    方法3:

    使用sed 工具 
    sed ’s/^M//’ filename > tmp_filename

    方法4:

    既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现: 
    tr -d ‘\r’

    方法5:(最常用的方法)

    在终端下敲命令:
    $ dos2unix filename
    直接转换成unix格式,就OK了!~
    https://blog.csdn.net/lovelovelovelovelo/article/details/79239068

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值