

テキストファイル内に  
aaa.JPG  
bbb.JPG  
ccc.JPG  
・  
・  
・  
とファイル名が羅列されていて、このテキストファイルを利用してここに載っているファイル名を全てあるフォルダから別のフォルダに移動させたいです。

mvコマンドでできそうな気がしますが、どのように記述するのでしょうか。


CC BY-SA 4.0
2018-11-19T08:29:32.780
50437
2018-11-20T12:49:03.260
30940
question
linux ubuntu
テキストファイルを読み取ってmvコマンドを利用したい


具体的な内容がちょっと分からないので補完しつつ一般的な例を書きます。

`/tmp/spam/`がカレントディレクトリで、そこに例示したテキストファイル（`test.txt`とします）とaaa.JPG、bbb.JPG、……があり、`/tmp/eggs/`に移動したいものとします。このとき、

[code]

    $ pwd
    /tmp/spam/
    $ cat test.txt | xargs -n 1 -I % mv % /tmp/eggs
    
[/code]

と実行することで、テキストファイルの各行のファイルを移動先に移動させることが可能です。


CC BY-SA 4.0
2018-11-19T08:37:30.377
50438
2018-11-19T08:37:30.377
29826
50437
answer


`sh/bash`のfor文と組み合わせてならできそうです。

[code]

    $ for f in 'cat filelist.txt`
    > do
    > mv $f DEST_DIR
    > done
    
[/code]


CC BY-SA 4.0
2018-11-19T08:38:22.547
50439
2018-11-19T08:38:22.547
3060
50437
answer


Bashやzshでは、`$(<ファイル名)`により、テキストファイルの内容をコマンドラインに展開できます。

[code]

    $ mv $(<filelist.txt) /path/to/dest_dir
    
[/code]


CC BY-SA 4.0
2018-11-20T12:49:03.260
50473
2018-11-20T12:49:03.260
4010
50437
answer