cjds.net
当前位置:首页 >> shEll 空格 >>

shEll 空格

这几天发现构建脚本太过庞大,于是就想把重复的单项构建独立成一个脚本。结果马上面临一个问题:参数带有空格! 在网上折腾了一番,也没有解决。于是自己尝试了一番,终于找到真正解决办法。这个办法的优点是,可以同时传递多个带空格的参数。注...

$1, $2, $3, ....代表第1, 第2,第3.....个参数 $#代表参数个数 写一个脚本: $ cat parameter_1.sh #!/bin/bash echo $1, $2, $3 echo $# 增加执行权限: $ chmod +x parameter_1.sh 运行它,带3个参数 $ ./parameter_1.sh q1 q2 q3 q1, q2, q...

我的可以输出空格啊, [root@xiao ~]# test=`printf "%4d\n" 1` [root@xiao ~]# echo "$test" 1 你可以把test=”`printf "%4d\n" 1`“ 也加上双引号试试。

$1, $2, $3, ....代表第1, 第2,第3.....个参数 $#代表参数个数 写一个脚本: $ cat parameter_1.sh #!/bin/bash echo $1, $2, $3 echo $# 增加执行权限: $ chmod +x parameter_1.sh 运行它,带3个参数 $ ./parameter_1.sh q1 q2 q3 q1, q2, q...

#!/bin/bash S='1000 1011' echo $S | grep " " >/dev/null 2>&1 if [ $? = 0 ];then num1=$(echo $S | awk '{print $1}') num2=$(echo $S | awk '{print $2}') echo "NUM1=$num1" echo "NUM2=$num2" else echo "没有空格" fi

sed "s/ /;/g"

假设每一个空格为一个分隔符,用awk实现: awk -F" " '{OFS="|";$1=$1;print $0}' 文件名 -F 设置输入域分隔符为空格。 OFS="|" 设置输出域分隔符。 print $0打印整行内容。

#!/bin/bashmyFile=/path/filenamecat $myFile | while read linedo echo "$line" #输出整行内容 echo "$line" | awk '{print $1}' #输出每行第一个字段done 以上是示例,根据你的需要自己修改吧。

删除第一列: 方法1: awk '{$1=;print $0}' file >file2 方法2: sed -e 's/[^ ]* //' file >file2 删除空格: sed -i 's/ //g' file

先建脚本:clearspace.sh 给脚本添加执行权限 chmod +x clearspace.sh 编辑脚本内容: touch tmpFile # 建临时文件 sed 's/\ //g' $1 >temFile #sed s命令 将空格替换 重定向到临时文件 cat temFile >$1 #覆盖原文件 rm -f temFile #删除临时文...

网站首页 | 网站地图
All rights reserved Powered by www.cjds.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com