输出

输出

我有这个问题:我有一个文本文件,其中每一行都有不同数量的字符,如下所示:

aaaa
bbbbbbbbb
cc

现在我想生成一个新的文本文件,其中一行最多有N个字符,但不丢失任何内容。所以,像这样(例如每行最多应有 4 个字符):

aaaa
bbbb
bbbb
b
cc

是否可以将sedawkgrep其他工具与单线结合使用?

答案1

fold -w4 yourfile

输出

aaaa
bbbb
bbbb
b
cc

答案2

珀尔

perl -lne 'print for /.{1,4}|^$/g' yourfile

sed1

sed -e '
   s/..../&\n/
   /\n$/P;//d
   P;D
' yourfile

塞德2

sed -e '
   s/..../&\n/g
   s/\n$//
' yourfile

重击

while IFS= read -r l; do
   case $l in '' ) echo; continue ;; esac
   while case $l in '' ) break ;; esac; do
      echo "${l:0:4}"
      l=${l:4:${#l}}
   done
done < yourfile

答案3

一直经典的 grep:

$ echo "$a"
aaaa
bbbbbbbbb
cc

$ echo "$a" |egrep -o '(.){1,4}'
aaaa
bbbb
bbbb
b
cc

答案4

sed 's_\(....\).*_\1_' /path/to/input

任何少于四个字符的内容都不会被触及;任何更长的内容都会被截断。

相关内容