- ベストアンサー
Cシェルでテキストファイルの行削除方法
現在、Cシェルの勉強をしていますが、ある文言に完全一致した行のみ削除する方法が分かりません。 例として、下記のようなファイルがあり、"AAA"を指定して削除しようとすると、"AAA_1"までも削除されてしまいます。 例)test.txt AAA aaa AAA_1 aaa BBB bbb CCC ccc お手数ですがご教授いただけると幸いです。 以上、宜しくお願い致します。
- cliosworld
- お礼率37% (6/16)
- その他(プログラミング・開発)
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
典型的なふわっとした質問ですね。まず Cシェル自体の勉強したいから、わざと sed とか awk は選択枝に入ってないのか、御自分がどう実行して駄目だったのかの説明もありません。 grep -vw AAA test.txt or sed '/^\<AAA\>/d' test.txt とか厳密に Cシェルのスクリプトらしくというならそういうふうに。
その他の回答 (2)
- wormhole
- ベストアンサー率28% (1622/5659)
>"AAA"をキーにして一致した文言があれば、その行のみ削除したいと思っています。 その条件だと質問に書かれているように"AAA_1"のある行が削除されてもおかしくないですよ。 あと、Cシェルはほとんど関係ない気がしますけど、どのようにして削除しようとしていますか?
- wormhole
- ベストアンサー率28% (1622/5659)
"AAA"に完全一致した行を削除ということだと、 例のtest.txtは全ての行が残るはずですけど、 本当の条件はなんですか?
補足
分かりづらくて申し訳ありません。 "AAA"をキーにして一致した文言があれば、その行のみ削除したいと思っています。
関連するQ&A
- EXCELで行の先頭データが同じ行の削除方法について
EXCELで次のようなことをしたいのですがどうしたら簡単にできるでしょうか? AAA AAA AAA AAA AAA BBB BBB BBB CCC DDD DDD DDD DDD 上ようのなデータで重複している部分を削除し、 AAA BBB CCC DDD としたいのですが。 今は一行々々で確認しながら削除してます。3000行程あり困ってます。 どうしたら簡単にできるでしょうか?
- ベストアンサー
- オフィス系ソフト
- シェルでファイルの最下行を削除する方法
シェルでファイルの最下行を削除する方法 シェルで、ファイルaaa.txtの最下行を削除したいです。これを1行で実現したいです。 exには-cってオプションがあるので、ex -c '$d' aaa.txt などと試してみましたがダメでした。 ;(コロン)や&&でつなぐのは、1行ではないって事でお願いします。 >cp aaa.txt tmp && sed '$d' tmp >aaa && rm tmp #こういうのは無しって意味です。 事前にスクリプトや、それ専用のバイナリを用意しておくのも無しでお願いします。なるべく汎用的な どこのUNIXにでもあるようなコマンドで実現したいです。
- ベストアンサー
- その他(プログラミング・開発)
- ファイル中の数行を抜き出す処理について(シェル)
ファイルaaa.txtの2行目から4行目を抜き出し、 ファイルbbb.txtに格納する方法として、 sed -n '2,4p' aaa.txt > bbb.txt がありますが、 変数を使用し、 start=2 end=4 sed -n '${start},${end}p' aaa.txt > bbb.txt とすると、エラーが発生します。 どうすればよろしいのでしょうか。
- ベストアンサー
- その他(プログラミング・開発)
- ファイルのデーター削除
下記のデーターが入っているabc.txtのファイルから 初めの2行を削除したいのですがよろしくお願いします。 10,aaa,100 11,bbb,200 12,ccc,200 13,ddd,300
- 締切済み
- PHP
- テキストファイルの任意の文字以降の文字列を削除したい
test.txt AAA+あいうえお BBB+かきくけこ CCC+さしすせそ DDD+たちつてと EEE+なにぬねの 上記(test.txt)のようなテキストファイルから、各行の+以降の文字列を削除して、 以下(result.txt)のようなテキストファイルを生成させるプログラムを作成させたいです。 result.txt AAA BBB CCC DDD EEE このようなプログラムを作るにはどのようにすればよいでしょうか? よろしくお願いします。
- ベストアンサー
- Java
- シェルで特定行を処理する方法を教えてください。
初めてご質問させていただきます 数時間考えましたが、全くできない初心者です。 awkとかも使ってみましたが・ちんぷんかんぷんです。 よろしくお願いいたします。 環境:RedHat、シェル:bash [やりたいこと] 特定の文字以外から始まる行を、 特定文字から始まる行へ連結させたい。 (例 aaaから始まっていない行(bbb、ccc、ddd)を、 aaaから始まる行へ出力させる。 ■元となるテキストファイル ============ aaa bbb ccc ddd aaa aaa aaa eee aaa ============ ■整形後のファイル ============ aaabbbcccddd aaa aaa aaaeee aaa ============
- ベストアンサー
- その他(プログラミング・開発)
- 行数ごとに検索をかけて並び替えをしたいのですが・・
数千のファイル名が書かれたテキストファイルがあります。(Aとします。) /yyy/ccc.txt /aaa/aaa.txt /bbb/bbb.txt /sss/aaa.txt /ccc/bbb.txt /zzz/ccc.txt ・ ・ ・ ユニークファイル名だけ書かれたファイルがあります。(Bとします。) aaa.txt bbb.txt ccc.txt ・ ・ ・ Bの行数1行ずつAで検索をかけ、ファイル名を新しいファイル(Cとします)に書き出したいのです。 /aaa/aaa.txt /sss/aaa.txt /bbb/bbb.txt /ccc/bbb.txt /yyy/ccc.txt /zzz/ccc.txt ・ ・ ・ シェルを使ってやりたいのですが、どのようにすればいいのか見当もつきません。 どなたかお分かりのかたいましたら教えてください。よろしくおねがいします。
- ベストアンサー
- Linux系OS
- テキスト処理のシェルプログラム
UNIXシェルもしくはPerlでテキスト処理のシェルスクリプト を作成したいのですがご教授お願いします 1000行あるテキストファイルを 2行単位で区切り2行単位で横一列へ置換しテキストへ出力したいのですが 例 処理前 aaa bbb ccc ddd eee fff 処理後 aaa,ccc,eee bbb,ddd,fff ご教授よろしくお願いします
- 締切済み
- Perl
- Cシェルでのファイル編集について
Cシェルについて、すみませんが教えてください。。 AAA,BBB,1 1,data1,0000 2,data2,0000 3,data3,0000 4,data4,0000 ・・・ CCC,15,2,13 上記のようなヘッダ1行+データN(ここでは13行とする)行+トレイラ1行で 構成されているファイルがあり、このヘッダとトレイラを以下のようなファイル に加工するプログラムをCシェルで作成したいのですが、全く見当がつきません。 AAA,BBB,00001 1,data1,0000 2,data2,0000 3,data3,0000 4,data4,0000 ・・・ CCC,00015,00002,00013 ※ヘッダの3項目めを5桁になるように左0埋め ※トレイラの2項目めを5桁になるように左0埋め ※トレイラの3項目めを5桁になるように左0埋め ※トレイラの4項目めを5桁になるように左0埋め どなたか教えてください。よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- ExcelのVBAで複数行削除を行う場合
Excel2007のVBAで複数行を削除する方法を教えて下さい。 Excel2003で使用していたマクロが使えなくなってしまいました・・・。 下記のようなExcelシートに対して複数行ずつ行を削除し、削除対象が無くなるまで 削除処理を行うか、指定した行まで削除処理を行うという事をしたいのですが うまく動きません。 例 A列 B列 C列 D列 E列 1行目 aaa1 bbb1 ccc1 2行目 ccc2 3行目 ccc3 4行目 ccc4 5行目 aaa2 bbb2 ccc1 6行目 ccc2 7行目 ccc3 8行目 ccc4 例に対しての結果 A列 B列 C列 D列 E列 1行目 aaa1 bbb1 ccc4 2行目 aaa2 bbb2 ccc4 例に対して、複数行(指定した行数ここでは3行)の削除を行いたいのですが、 単純に複数行(3行)ずつ削除していくのではなく。 1行目や5行目にあるように文字や情報が入力されているA列とB列の情報は 残しつつ、4行目のC列以降の列の情報はすべて活かしていくという事をしたいのです。 Excel2003の時に使用していたVBAは以下のものです。 Sub 行を削除するマクロ() Workbooks("xxxx.xlsx").Activate '処理を行いたいExcel ※1 n = n + 0 LastRow = 2138 '処理を終了させたい行 ※2 Sheets("Sheet1").Select '処理を行いたいシート ※3 Do Until (n > LastRow) Rows(n + 4).Delete Shift:=xlsiftUp '削除したい行指定 ※4 n = n + 3 Loop End Sub 皆様の良いアドバイスやお知恵をお貸しください。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
お礼
ありがとうございました。想定通りの動作をすることが確認出来ました。