如何替换文本文件中的空行,假设该文件为:
first
third
使用Bash的一些字符串(例如“第二个”)? 我想做某事像这样:
first
second
third
答案 0 :(得分:7)
答案 1 :(得分:6)
您还可以使用default value作为未设置或空的变量:
cat file.txt | while read line
do
echo "${line:-second}" # empty lines are default to 'second'
done > file.out
答案 2 :(得分:3)
您可以使用[ -z "$line" ]
来测试line
是否为空,并随身携带。
cat file.txt | while read line
do
if [ -z "$line" ]
then
//$line is empty
fi
done
编辑 - 如果你想用“秒”替换空行 - 那么你最终会得到file.out
,这是用second
取代空行的新文件
touch file.out
cat file.txt | while read line
do
if [ -z "$line" ]
then
echo "second" >> file.out
else
echo $line >> file.out
fi
done