[yaxin@oishi tmp]$cat -n a.txt 1 jhasdfj 2 3 sdfjalskdf 4 5
我的脚本是:
[yaxin@oishi tmp]$cat t.sh #!/bin/sha=`cat a.txt`a_length=`echo "$a" | awk 'END {print NR}'`echo "$a"echo $a_length[yaxin@oishi tmp]$sh t.sh jhasdfjsdfjalskdf3
打开调试
[yaxin@oishi tmp]$sh -x t.sh ++ cat a.txt+ a='jhasdfjsdfjalskdf'++ echo 'jhasdfjsdfjalskdf'++ awk 'END {print NR}'+ a_length=3+ echo 'jhasdfjsdfjalskdf'jhasdfjsdfjalskdf+ echo 33
cat命令窃取文件末尾的空白行.如何解决这个问题.
解决方法 你这里不需要cat命令,直接使用这样的awk:awk 'END {print NR}' a.txt
您的问题是将cat的输出存储在shell变量中.即使这样也会给出正确的输出(尽管是UUOC的情况):
cat a.txt | awk 'END {print NR}'
更新:当您尝试执行此 *** 作时:
a=`cat a.txt`
要不然:
a=$(cat a.txt)
陷阱是过程替换,即反向引用内的命令,如你所拥有或在$()中删除尾随换行符.
您可以使用此技巧来获取存储在shell变量中的尾随换行符:
a=`cat a.txt; echo ';'`a="${a%;}"
测试变量值:
echo "$a"printf "%q" "$a"
然后输出也会显示换行符:
jhasdfjsdfjalskdf$'jhasdfj\n\nsdfjalskdf\n\n\n'总结
以上是内存溢出为你收集整理的linux – 当我在shell脚本中使用cat命令时,如何在文件末尾保留空行全部内容,希望文章能够帮你解决linux – 当我在shell脚本中使用cat命令时,如何在文件末尾保留空行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)