使用 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.
分隔
我尝试使用 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.
分隔