Perlで文字列の操作がしたい
Perlで文字列の操作がしたい
---test.txt---
あ PC 100 a b c
あ HIw 100 f g h
あ HIw 100
あ sHI 130 z e i
あ sHI 100 f p
あ sHI 100 t p
以下、3000行程度続く(空白は、タブ区切り。)
--------------
上記のようなデータがあります。
比較したいのは、a b c(3列目以降のデータ)という部分になります。(実際は、10桁の英字列です)
処理は、
1行目のabcに該当する部分は全データの中で1行のみ必要。他の行は削除。
また、ここにデータが無い場合も削除。
それ以外は、保存。
順序は問わない。
というものです。説明が難しいので下記に例を挙げました。
--例--
あ PC 100 a b c <保存。
あ HIw 100 f g h <a,b,cのいずれも含まなず、空白でもないので保存。
あ HIw 100 <a,b,cのいずれも含まない。しかし、空白なので削除。
あ sHI 130 i j f <a,b,c,f,g,hのいずれかを含むので削除。
あ sHI 100 k a <a,b,c,f,g,h,i,jのいずれかを含むので削除。
あ sHI 100 z ab cd <a,b,c,f,g,h,i,j,kのいずれも含まないので保存。(ab cd はひとつのかたまり)
あ sHI 100 a ab cdd <a,b,c,f,g,h,i,j,k,z,ab,cdのいずれかを含むので削除。
い sgI 100 ga adb ced <a,b,c,f,g,h,i,j,k,z,ab,cd,cddのいずれも含まないので保存。
で結果出力は、
あ PC 100 a b c
あ HIw 100 f g h
あ sHI 100 z ab cd
い sgI 100 ga adb ced
以上、ややこしいのですが、もし、お時間などありましたら、ご回答いただけますと幸いです。
宜しくお願い致します。
なお、
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2382509
では大変お世話になりました。
このコードを応用しようと思ったのですが、条件が複雑で、私の力では無理でした。
因みに、こういったコードを作れるコツでもあるのでしょうか?
私などは、かなり考えても思いもつきませんが・・・(涙;
お礼
早急な回答大変感謝しております。 COPY命令だったんですね。 解決しました、有難うございます。