使用 CUT 命令时包含空格

Include white spaces while using CUT command

我尝试使用 cut 命令从文件中提取 11 个字符(默认),其中包含 in 标记。如果字符由双 space 组成,则 cut 命令以单个间距给出输出。

我正在处理的文件如下所示:

blablaFirst  lastblabla 

我用过的命令是:

cut -c7-18 file.txt

不想要的结果是(只有一个space而不是两个之间第一个 最后一个 ) :

First last

这是主要代码:

c_line="file.txt"
targetfile="result.txt"
var1=0
while read c_line
do
var1=`grep -c "IIT   Chennai" $c_line`
echo $var1 >> $targetfile
if [ $var1 -ge 1 ]
then
val=`cut -c7-18 $c_line`
echo $var >> $targetfile

fi
done<${c_line}

我宁愿继续使用 cut

你知道 cut 有什么问题吗?

我假设你的这部分脚本有错别字:

val=`cut -c7-18 $c_line`
echo $var >> $targetfile
#       ^ should be $val

所以问题是你在使用 $val,而你应该使用 "$val"

当您展开一个不带引号的变量时,会发生分词,因此 echo 会看到两个参数:

echo 'First' 'last'

打印这些参数,由单个 space.

分隔