我有这个问题:我有一个文本文件,其中每一行都有不同数量的字符,如下所示:
aaaa
bbbbbbbbb
cc
现在我想生成一个新的文本文件,其中一行最多有N个字符,但不丢失任何内容。所以,像这样(例如每行最多应有 4 个字符):
aaaa
bbbb
bbbb
b
cc
是否可以将sed
、awk
或grep
其他工具与单线结合使用?
答案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
任何少于四个字符的内容都不会被触及;任何更长的内容都会被截断。