こんにちは。Linux初心者です。以前に使われていたLinuxのデバイスを整理しています。
主に、以下の2つのディレクトリ間でのデータのやり取りをしています。
/home/taro/data
/home/taro/scripts
~/data のディレクトリには以下の複数のファイルがあるのですが、欲しい古い情報は、list.txtに入っています。
taro_contact_2020.csv tomo_picture_2017.jpg miki_picture_2016.jpg taro_profile_2018.doc tomo_profile_2017.doc taro_profile_2019.doc list.txt
実際に、以下のコマンドを打つと10個のテキスト情報が表示されます。
bash
1cat list.txt
001 taro /data/jane_profile_2011.doc
002 tomo /data/kwood_profile_2010.doc
003 miki /data/pchow_profile_2009.doc
004 tomo /data/janez_profile_2008.doc
005 taro /data/jane_picture_2011.jpg
006 taro /data/kwood_picture2009.jpg
007 miki /data/pchow_picture_2010.jpg
008 taro /data/jane_contact.csv
009 tomo /data/kwood_contact.csv
010 miki /data/pchow_contact.csv
【やりたいこと】
① nano で findtaro.sh というファイルを /scripts のディレクトリ内に作って 前述のlist.txt から、/scriptsに置いています。)
taro を含むファイル名だけを新しいファイル newfile.txt に挿入したい。 (newfile.txtは
② 念のためにヒットした結果が ~/data のディレクトリに重複して存在しないかテスト・チェックをしておきたい。
【自分でやってみたこと】
以下のコードを書いてみましたが、未熟でコードを完成させることができません。
色々試してみたのですが、newfile.txt に、"..data/list.txt"というテキストが挿入されてしまいます。
bash
1for names in ../data/list.txt; do 2 grep ' taro ' $names | cut -d ' ' -f3 3 for file in $names; do 4 if test -e ~/data/$file; then 5 echo "File already exists"; 6 else 7 echo "$file" >> newfile.txt; fi; done 8 9done
どのようなコードを書けば綺麗に処理できるのか、ご教授頂けると幸いです。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/14 09:25