sedコマンドを使用してファイルの最終行を削除する方法を調べていたのですが
最終行の削除は問題なくできたのですが最終行から特定行までを消すため以下のコマンドを発行したのですがうまくいきませんでした。複数サイトを見てみたんですが構文自体は同じでしたのでおそらく問題ないとは思うですが何か気づく方がいたらお教えください。
以下実行コマンド
sed -e '$-3,$d' sed_test.txt

このQ&Aに関連する最新のQ&A

A 回答 (2件)

sedのマニュアルをいくつか検索してみましたが、 アドレスに「$-3」とすると「最終行の3つ前」になる、と明記しているものは見付けられませんでした。


どこかにそのような記述がありましたか?
    • good
    • 0
この回答へのお礼

回答の程ありがとうございます。
すみません。自己解決できました。
ありがとうございました。

お礼日時:2012/12/17 09:47

これは sed では無理.



「構文自体は同じでしたので」って書いてますけど, 本当に「同じ」ですか? アドレスの与え方も含めて, きちんと確認しましたか?
    • good
    • 0
この回答へのお礼

回答の程ありがとうございます。
すみません。自己解決できました。
ありがとうございました。

お礼日時:2012/12/17 09:47

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q注文請書の「行」から「御中」への訂正方法を教えてください

注文請書を返送したいのですが、宛名に「取引先名称 行」と
印字されている為、「取引先名称 御中」に訂正したいのですが
訂正印は必要でしょうか?
二重線を引いて御中になおす方法でよいものか悩んでいます。
ご回答、よろしくお願いします。

Aベストアンサー

>二重線を引いて御中になおす方法でよいものか悩んでいます


これでOKです。訂正印は不要です。

Qファイルのある行からある行までを別のファイルにコピーするコマンド

ファイルのある行からある行までを別のファイルにコピーするコマンドってありますか?

Aベストアンサー

headとtailを組み合わせれば出来ます。

たとえば、aaa.txt の201行目から300行目までの100行を bbb.txt に、というときは

head -300 aaa.txt | tail -100 > bbb.txt

とします。

Q往復はがきの返信で、「行」を二重線で消した後の「御中」を書く場所は?

受け取った「往復はがき」に「返信」を出す場合の書き方のことで質問します。

まず、表側の宛名の下の「行」や「宛」の字を2本線を引いて消し、
「様」の敬称を書きますね。
もし、官庁・学校・団体・会社・会などの場合は「御中」と書きます。
(縦書きを想定して下さい。)

このときの「様」や「御中」は、「行」や「宛」の右下に書くのがいいのでしょうか、
それとも左下に書くのがいいのでしょうか。
どちら側にどのぐらい下げて書くのが常識的でしょうか。

Aベストアンサー

縦書きの場合は順序として右から左へ書きますが
左下が後になるのでこの場合は左下が正解ですが
普通一般的には下げなくてもかまいません
要は「行」や「宛」を消して「様」や「御中」に
書き換えることの方が重要だからです

Qテキストファイルの最終行の改行コード削除

お世話になります。

SQLコマンドを発行し、csvファイルを自動生成させるシェルスクリプトを作ったのですが、最終行にある改行コードを削除して欲しいとの指示を受けて、その方法を調査。試行錯誤しているのですがよい方法が見つかりません。

最終行にある改行コードのみを削除するにはどうしたら宜しいでしょうか。

ご教示頂ければ幸いです。

宜しくお願い致します。

                               以上

Aベストアンサー

UNIX系が使えると簡単なのですが。
Windowsから ftp で、binary モードでアップロードし、それを ascii モードでダウンロードするだけなので。
或いは、vi エディタでしたら、
:%s/^v^m//
でできますので。
Windows の世界だけでやる方法については、他の方に譲ります。

Q大学の願書の送付先は ○○行 ○○御中 どちらですか?

大学受験の願書を買ってきたのですが、
指定の封筒にはあらかじめ宛先が印刷されていて、
「 ○○大学入試センター 行」となっています。
この場合、相手が企業でなくて大学の場合でも、「行」の部分を消して、「御中」にしたほうが良いのでしょうか?

Aベストアンサー

みなさんのご回答でよろしいと思います。質問者さんの今後も鑑み、(勝手にですが)まとめてみようと思います。

★相手から返信用の封筒が同封されている場合は、まず間違いなく「行」になっています。
★「行」はどんなシッチュエーションの場合でも、斜線で消して、個人の場合は「様」、個人以外(機関名・社名・部署名・担当者:但し個人名でない時など)は必ず「御中」にしましょう。
★たまに混同して使用しているのを見かけますが、「殿」は目上(あるいは格上)から目下(同格下)へ宛てる場合のみです。間違っても、大学や就職活動の時の人事担当者個人宛で「殿」は使ってはなりません。「お里」が知れるってものです。迷ったら「様」です。

ご参考まで。

Q*.txtファイルの最終行だけ参照して、バッチファイルを作りたい

*.txtファイルのなかに"test"という文字をfindstrコマンド又はfindコマンドで探して、出力したいのですが、全ての行を参照して出力するのではなくて、最終行だけを参照して出力するといったバッチファイルを作成したいのですが、どうやればいいのでしょうか?

どうぞよろしくお願いいたします。

Aベストアンサー

tail コマンドを探してきて入れる(インストール)

for %%f in (*.txt) do find "test" %%f | tail -1

Q手紙の宛先の「行」を「御中」にする時

葉書や封書の宛名で、最初から印字されている時は、「○○行」となっていることが多く、
大抵はそれを自分で二重線などで消して、「御中」に直してから出すと思います。
大したことではないのですが、この二重線は、縦or横どちらですか?
私は何となく、斜めの二重線にしているのですが・・・。

また、「○○行」の時は「御中」で良かったはずですが、「○○内△△(人名)」の時は、
どういう風に直せば良かったのでしょうか?

大学時代、秘書検定準1級にすんなり通ったのですが、関係ない仕事をしていることもあってか、よく分かりません。
常識的なことですが、気になっています。よろしくお願いいたします。

Aベストアンサー

私は左上から右下への斜め二本線で消して、書き直しますね。

相手が団体名のときは「御中」、個人名のときは「様」にすればいいでしょう。

Qman sedでsedの使い方を調べると-Eが使え

そうもないのですが
実際には

[root@fx8120 音楽]# ls -1
Playlist.pls
gomi.sh
music
[root@fx8120 音楽]# ls -1|sed -E "s/\.\w{3,4}$//"
Playlist
gomi.sh
music
[root@fx8120 音楽]#

から分ったのですが-E(拡張正規表現を有効にする)オプションが
機能している様に思われます
sed -E
は有効なのでしょうか?

よろしくお願いします

Aベストアンサー

ソースコードを眺めると
http://git.savannah.gnu.org/cgit/sed.git/tree/sed/sed.c
280行目付近

/* Undocumented, for compatibility with BSD sed. */
 case 'E':
 case 'r':
(略)
    extended_regexp_flags = REG_EXTENDED;

とあります。
これを見る限り
・-E は -rと同じ
・BSDのsedとの互換性のためにある
・ドキュメントには載せていない
ということのようです

Q行を様や御中に訂正する時、二重線で消すのでなく、書き加えるのは、ありですか?それともマナー違反ですか?

 このテーマの以前のQ&Aに目を通したのですが、「行は二重線で消して」という回答が多かったようです。
 私は長いこと、「行」に書き加えて「御」にして良いものと思っていました。以前の回答の中で、下記のような書き込みがあったのでたいへん心強く思ったのですが、このこと自体をテーマにした回答ではなかったのでちょっと心配です。
どうなんでしょうか?
 >「行」のぎょうにんべんと「御中」の「御」のぎょうにんべんが
 同じなので、ぎょうにんべんはそのままで、「行」のつくりの
 「テ」の部分をちょっと書き加えて「卸」にするんです。

Aベストアンサー

有り得ない事です。
もしも そのような郵便物が届いたら 事務所全員で大笑いのネタにするほどの有り得ない話しです。
採用関係の書類だとか、営業の書類だったらそれだけで不採用 契約なし が確定するほどの非常識な事です。
小さいとは言え 私も経営者の端くれです。
もしも、我が社の事務員がそのような事をしたら、即日懲戒解雇を言い渡します。

QLinux sedコマンド 特定行の置換

こんにちは

テキストファイルの内容をsedコマンドで特定の行の頭に#を付けるようにしたいのですが、
うまくいきません。どのようにしたら良いでしょうか。

--実行前の内容--
* * * * * /tmp/tst.sh
* * * * * /opt/aaa.sh

--想定結果--
#* * * * * /tmp/tst.sh
* * * * * /opt/aaa.sh

Aベストアンサー

No.1の方が聞いてるのは「特定の行とする条件」は何かを聞いているんだと思いますよ

「1行目」だけに#を付けたいのなら↓をどうぞ。
less test.txt | sed -e "1s/^/#/"


人気Q&Aランキング

おすすめ情報