我需要通过在以句点开头的每行上方添加一个空行来编辑文本文件。
之前
Corn
.Apple
Words.
.Orange
Bean
之后
Corn
.Apple
Words.
.Orange
Bean
这是我到目前为止所拥有的。 这会在每个句号后添加一个空格。实际文件中还有更多内容。
cat File.txt | sed -r 's/([.]+)/\n\1/g'
这显示以句点开头的行
while read -r line; do
if [[ "$line" == "."* ]]; then
echo "$line"
fi
done < File.txt
如何将它们合并在一起?
最佳答案
这会产生您想要的输出:
$ sed 's/^[.]/\n./' file
Corn
.Apple
Words.
.Orange
Bean
如果您想就地更改文件,请使用 sed 的 -i
选项:
sed -i 's/^[.]/\n./' file
对于 Mac OSX 或其他 BSD 系统,请使用:
sed -i '' 's/^[.]/\n./' file
我们使用 ^
只匹配行的开头。由于我们在行的开头匹配句点,因此没有必要捕获带括号的组:我们知道匹配是句点。我们需要做的就是在该句点之前添加一个换行符。
关于linux - Bash - 在以句点开头的行上方添加空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322712/