2016-06-27 112 views
-1

我嘗試使用cut命令從文件中提取11個包含在標記中的字符(默認值)。如果字符包含雙倍空間,則cut命令會爲輸出提供單個間距。使用CUT命令時包含空格

我上看起來那樣工作文件:

blablaFirst lastblabla 

命令我用的是:

cut -c7-18 file.txt 

的非期望的結果是(僅一個空間代替兩個之間第一個 a第二最後):

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} 

我寧願繼續使用切割

你知道什麼是切的問題?

+3

也許你有一個選項卡沒有空格?我用空格試了一下,它能正確工作(保留空格):'First lastb' –

回答

0

我假設你的腳本的這一部分是一個錯字:

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

所以問題是,你正在使用$val,當你應該使用"$val"

當您展開不帶引號的變量,文字分裂發生,所以echo看到兩個參數:

echo 'First' 'last' 

這些參數打印出來,由一個空格隔開。

+0

它工作正常,非常感謝! – technopathe

相關問題