0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

シェルスクリプトとedで、テキストファイルの行を逆順にする。(小ネタ・読了に要する時間:推定約30秒)

Last updated at Posted at 2016-06-06

はじめに

シェルスクリプトとedをちょっと真面目にお勉強したら、プログラム書くまでもなく、色々できることが増えて幸せになれるかも?と思わせてくれたお題について書きます。

なお、以下で、$ はシェルプロンプトです。

お題

指定したテキストファイルの行を逆順にするようなプログラム reverse を作る。
具体的には以下のような感じ。

shell
$ cat abc.txt
111
222
333
444
555

というテキストファイルabc.txt があり、これに対して

shell
$ reverse abc.txt

とすると、abc.txt が以下のようになる。

shell
$ cat abc.txt
555
444
333
222
111

このような reverse を作成したい。

答え

reverse
#!/bin/sh                                                                                                            

ed - $1 <<- !
g/^/m0
w
q
!

以下実行したところ

shell
$ cat abc.txt
111
222
333
444
555
$ reverse abc.txt; cat abc.txt
555
444
333
222
111
$ reverse abc.txt; cat abc.txt
111
222
333
444
555
$ 

引用元

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界
P.107 4章10節 ヒアドキュメント

参考

Wikipedia: ed

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?