Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux bash脚本逐行读取并回显到文件_Linux_Bash - Fatal编程技术网

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的/^$/'