Linux bash脚本逐行读取并回显到文件
我无法让这个脚本执行我想要的操作。有人能帮忙吗?应该逐行读取一个文本文件,然后将结果回显到另一个文件中。但它并没有识别空行。因为它应该打印行,除非它是空的,那么它应该打印到文件中Linux bash脚本逐行读取并回显到文件,linux,bash,Linux,Bash,我无法让这个脚本执行我想要的操作。有人能帮忙吗?应该逐行读取一个文本文件,然后将结果回显到另一个文件中。但它并没有识别空行。因为它应该打印行,除非它是空的,那么它应该打印到文件中 iname = checktest while read line do if [ "$line" == "" ]; then echo "<blank>" >> $iname2.txt else echo "$line" >> $
iname = checktest
while read line
do
if [ "$line" == "" ];
then
echo "<blank>" >> $iname2.txt
else
echo "$line" >> $iname2.txt
fi
done <$iname.txt
iname=checktest
读行时
做
如果[“$line”==”];
然后
echo”“>>$iname2.txt
其他的
echo“$line”>>$iname2.txt
fi
完成进行如下编辑:
iname=检查测试
while read line
do
if [ -z "$line" ]
then echo "" >> ${iname}2.txt
else
echo "$line" >> ${iname}2.txt
fi
done < ${iname} ;
读取行时
做
如果[-z“$line”]
然后echo“>>${iname}2.txt
其他的
echo“$line”>>${iname}2.txt
fi
完成<${iname};
它现在应该可以工作了,希望这有帮助 在bash中,变量赋值之间不能有空格
#!/bin/bash
iname=checktest #Should be no space between = sign
while read line; do
if [ -z "$line" ]; then
echo "I saw an empty line ... will report this"
else
echo "$line"
fi
done <"$iname".txt > newfile.txt
#/bin/bash
iname=checktest#符号之间不应有空格
读行时;做
如果[-z“$line”];然后
echo“我看到一条空行…将报告此情况”
其他的
回音“$line”
fi
完成newfile.txt
另外,在循环结束后使用
。这样可以防止不必要的I/O在每个循环周期中打开文件进行写入。iname=checktest
iname = checktest
while read line
do
if [ "$line" != "" ];
then
echo $line >>
fi
done < $iname > ${iname}2.txt
读行时
做
如果[“$line”!=”;
然后
echo$line>>
fi
完成<$iname>${iname}2.txt
在我看来,在只匹配的情况下做一些事情更符合逻辑。为什么不sed的/^$/'
?