这是我所拥有的
这 是 A 样本 文本 如何 到 做 它 ?
我需要的输出是:
这是一个示例文本 怎么做 ?
此外,我怎样才能实现同样的目标:
这 是 A 样本 文本 如何 到 做 它 ?
如何将以非大写字符开头的行附加到前一行?
答案1
答案2
考虑到有些句子可能也包含大写单词,也许这可能是您正在寻找的解决方案:
sed -n '
1h
1!H
$ {
g
s/\n\n/<br>/g
p
}
' | \
sed -n '
1h
1!H
$ {
g
s/\n/ /g
p
}
' | \
sed -e 's/<br>/\n/g'
答案3
bash 内置命令是最快的方法 :-)
declare -a A
mapfile -t A <inputFile
for line in "${A[@]}"
do
if [ -n "${line}" ]
then
if [ "${line}" = "${line^}" ]
then
echo -en "\n${line} "
else
echo -n "${line} "
fi
else
echo "" # newline, because input line was empty
fi
done
答案4
对于第一个样本:
awk '{$1=$1}1' RS= file
第二个样本:
awk '/^[[:upper:]]/{print x}1' file | awk '{$1=$1}1' RS=