みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Cシェルでテキストファイルの行削除方法

現在、Cシェルの勉強をしていますが、ある文言に完全一致した行のみ削除する方法が分かりません。

例として、下記のようなファイルがあり、"AAA"を指定して削除しようとすると、"AAA_1"までも削除されてしまいます。

例)test.txt
AAA aaa
AAA_1 aaa
BBB bbb
CCC ccc

お手数ですがご教授いただけると幸いです。

以上、宜しくお願い致します。

投稿日時 - 2019-01-05 01:58:20

QNo.9574490

困ってます

質問者が選んだベストアンサー

典型的なふわっとした質問ですね。まず Cシェル自体の勉強したいから、わざと sed とか awk は選択枝に入ってないのか、御自分がどう実行して駄目だったのかの説明もありません。

grep -vw AAA test.txt
or
sed '/^\<AAA\>/d' test.txt
とか厳密に Cシェルのスクリプトらしくというならそういうふうに。

投稿日時 - 2019-01-05 19:16:02

お礼

ありがとうございました。想定通りの動作をすることが確認出来ました。

投稿日時 - 2019-01-07 12:30:50

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

>"AAA"をキーにして一致した文言があれば、その行のみ削除したいと思っています。

その条件だと質問に書かれているように"AAA_1"のある行が削除されてもおかしくないですよ。
あと、Cシェルはほとんど関係ない気がしますけど、どのようにして削除しようとしていますか?

投稿日時 - 2019-01-05 17:42:51

ANo.1

"AAA"に完全一致した行を削除ということだと、
例のtest.txtは全ての行が残るはずですけど、
本当の条件はなんですか?

投稿日時 - 2019-01-05 03:19:15

補足

分かりづらくて申し訳ありません。
"AAA"をキーにして一致した文言があれば、その行のみ削除したいと思っています。

投稿日時 - 2019-01-05 16:37:59

あなたにオススメの質問