Linux 使用“剪切”命令时包含空格

Linux 使用“剪切”命令时包含空格,linux,shell,filter,cut,Linux,Shell,Filter,Cut,我尝试使用cut命令从文件中提取包含in标记的11个字符(默认值)。如果字符包含双空格,则cut命令以单空格给出输出 我正在处理的文件如下所示: blablast first last bla 我使用的命令是: cut-c7-18 file.txt 非期望的结果是(在第一个和最后一个之间只有一个空格,而不是两个): First-last 以下是主要代码: c_line=“file.txt” targetfile=“result.txt” var1=0 读c_行时 做 var1=`grep-

我尝试使用cut命令从文件中提取包含in标记的11个字符(默认值)。如果字符包含双空格,则cut命令以单空格给出输出

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

blablast first last bla
我使用的命令是:

cut-c7-18 file.txt
非期望的结果是(在第一个最后一个之间只有一个空格,而不是两个):

First-last
以下是主要代码:

c_line=“file.txt”
targetfile=“result.txt”
var1=0
读c_行时
做
var1=`grep-c“IIT Chennai”$c_行`
echo$var1>>$targetfile
如果[$var1-通用电气1]
然后
val=`cut-c7-18$c_行`
echo$var>>$targetfile
fi

完成我假设您的脚本的这一部分是打字错误:

val=`cut -c7-18 $c_line`
echo $var >> $targetfile
#       ^ should be $val
因此,问题是您使用的是
$val
,而您应该使用
“$val”

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

echo 'First' 'last'

这些参数是打印出来的,用一个空格分隔。

也许您有一个选项卡,而不是空格?我用空格试过了,效果很好(保留空格):
First-lastb