2016-06-30 10 views
0

出力ファイルを作成するために/ wフラグ付きのsedコマンドを使用しているシェルスクリプトがあります。スクリプト内でそのファイルを使用しようとすると、ファイルが見つかりませんが、スクリプトが終了すると、ディレクトリに作成されます。シェルスクリプトの/ wパラメータ付きsedコマンド

スクリプト内で作成されたファイルを使用できますか?それがうまくいくためには何が必要ですか?

#!/usr/bin/bash 
fileQual=Test_load 

dataFile=$fileQual.dat 
corruptDataFile=$fileQual.err 

cp "${dataFile}" "${dataFile}".cpy 

LANG=C sed -n '/[\x00-\x08\x80-\xFF\x0B-\x0C\x0E-\x1F\x21-\x2B\x2F\x3A-\x40\x5B-\x60\x7B\x7D-\x7F]/w '${corruptDataFile}' ' "${dataFile}".cpy 
echo "file corruptDataFile = ${corruptDataFile}" 
ls ${corruptDataFile} 

function checkNattach() 
{ 
    local fname="$1" 
    local atch 
    if [ -f "$1" ];then 
     atch="-a ${fname} " 
     echo "${fname} exists" 
    else 
     echo "${fname} not found" 
    fi 
    #resFun=atch 
    # echo " in function checkNattach atch $atch " 
    # echo " in function checkNattach resFun $resFun " 
    echo $atch 
} 

TIME=`date +%F-%H%M%S`     # time stamp to the backup file 
FILENAME="Test-$TIME.zip"  # defining the format of the file name while backing up 

echo $FILENAME 
zipincl="" 
zipincl="${zipincl} $(checkNattach ${corruptDataFile})" 
echo "**********zipincl ${zipincl} ${corruptDataFile} " 

zip -9 $FILENAME $corruptDataFile $dataFile 

、スクリプトが、私はディレクトリを検索する場合、ファイルが実際に存在し、終了した後の出力は

file corruptDataFile = Test_load.err 

ls: Test_load.err: No such file or directory 


Test-2016-06-29-204904.zip 

**********zipincl Test_load.err not found Test_load.err 
+ zip -9 Test-2016-06-29-204904.zip Test_load.err Test_load.dat 
     zip warning: name not matched: Test_load.err 

です。 zipコマンドで使用できる方法はありますか?

+0

'\ x00- \ x08 \ x80..'で何を達成したいですか? – sjsam

+0

基本的に、それらの文字を含むファイル内の行を削除する – adbdkb

+0

それは多くのコードです。 [MCVE](http://stackoverflow.com/help/mcve)で問題を特定できますか?また、どのオペレーティングシステムを実行していますか? '/ usr/bin/bash'は奇妙な場所のようですが、OSは実行中の他のツールの風味に' sed'のような影響を与えます。ああ、そして原則として、常にbashの変数を引用します。 'dataFile =" $ fileQual.dat "'など – ghoti

答えて

1
LANG=C sed -n '/[\x00-\x08\x80-\xFF\x0B-\x0C\x0E-\x1F\x21-\x2B\x2F\x3A-\x40\x5B-\x60\x7B\x7D-\x7F]/w '${corruptDataFile}' ' "${dataFile}".cpy 

上記の行から'${corruptDataFile}'の後のスペースを削除します。最後にスペースを含むファイル名を作成しています。

+0

それが原因と思われます。もう少しテストを行い、ここで報告します。 – adbdkb

+0

私はもう少しテストを行いました。 – adbdkb

関連する問題