在shell脚本中需要帮助

时间:2014-01-21 04:16:02

标签: shell

我是shell脚本的新手,并且在过去2个月内学习它。对于下面的问题,我需要你的帮助来调整或提供sed或AWK中的任何其他解决方案。

“编写一个脚本来输入文件名,并以每行只有10个字符的方式显示文件内容。如果文件中的行超过10个字符,则在下一行显示该行的其余部分。”< / p>

我写了下面的脚本并且工作正常。但是我花了2个小时写它..(当然不能接受。问题是我知道shell命令很好但仍然没有掌握将它们放入shell脚本的技巧:-(谢谢。

#!/bin/bash 

if [ $# -ne 1 ]; then
echo "USAGE: $0 $1"
exit 99;
fi

VAR1=$(echo "$1" | wc -c)

cat "$1" | while read line
        do
           [ $VAR1 -gt 10 ] && echo "$line" || echo "$line"|tr " " "\n"
        done

2 个答案:

答案 0 :(得分:1)

使用sed

sed 's/........../&\n/g' file.txt

使用grep

grep -oE '.{1,10}' file.txt

使用dd

cat file.txt | dd cbs=10 conv=unblock 2>/dev/null 

答案 1 :(得分:0)

使用awk

awk 'BEGIN {FS=""} {for (i=1; i<=NF; i++) if (i % 10 == 0) printf "%s\n", $i ; else if (i == NF) print "\n" ; else printf "%s", $i} ' inputs.txt

这有效,但我觉得这不是使用awk的最佳方式:-P