人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

UNIX上で改行区切りのテキストデータを一行一行引数として読み込み、コマンドを実行する方法を教えてください。(例)【hoge.txtの中身】(実際は改行区切り)→ABC001,DEF002,GHI003【実行したいコマンド】([ ]内が可変)→cp -p [ABC001] [ABC001].20040112

●質問者: ka0007
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:CP hoge txt UNIX コマンド
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● aki73ix
●16ポイント

http://www.linux.or.jp/

日本の Linux 情報

URLはダミーです

環境変数に データを読み込んでやれば実行できますよ

シェルによってやり方が違うので環境を書いたほうがいいです

無理なら、環境変数``(注:アポストロフィではありません)でくくってやるといいと思います

◎質問者からの返答

ありがとうございます。csh,bashで実行する際の具体例をいただけると助かります。


2 ● Indigo
●16ポイント

http://www.excite.co.jp/

Excite エキサイト

URLはダミーです

さまざまな方法があると思いますが、

一行一語ならcshでコマンドラインで以下の

様にすれば出来ます

foreach piyo(`cat hoge.txt`)

cp -p $piyo $piyo.20040112

end


3 ● izumick
●16ポイント

http://www.hatena.ne.jp/

はてな

URLはダミーです。

自分だったら、

cat hoge.txt |gawk ’{print ”cp”,$1,$1”.20040112”}’ |sh

でしょうか。

◎質問者からの返答

1〜3の皆様回答ありがとうございます。もう少しご意見を募ってみることにします。


4 ● konohazuku
●16ポイント

http://homepage2.nifty.com/tashikatsu/script/shell/shell-beggine...

URL はダミーです。

(ba)sh だったら以下のようになります。

for file in `cat hoge.txt`; do

cp -p $file $file.20040112

done


5 ● Fujim
●16ポイント

http://infosys.gsid.nagoya-u.ac.jp/~ohna/perl_lesson/intro2perl/...

Perl: One-Liner

perl -ne ’chomp; `cp $_ $_.20040112`’ hoge.txt

などとよくやります.

◎質問者からの返答

皆様ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ