R言語インストール centos7

動機

dplyrパッケージを使ってみたいからいんすこした。

エラーおきたw

同一ファイルが2つのパッケージから提供されて競合。

コード表示

Transaction check error:
  file /usr/include/unicode/regex.h from install of libicu-devel-50.1.2-17.el7.x86_64 conflicts with file from package libicu57-devel-57.1-8.el7.x86_64

片方リム

りむる

コード表示

[oracle@centos ~]$ yum list libicu57-devel-57.1-8.el7.x86_64
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp-srv2.kddilabs.jp
 * centos-qemu-ev: ftp-srv2.kddilabs.jp
 * extras: ftp-srv2.kddilabs.jp
 * updates: ftp-srv2.kddilabs.jp
インストール済みパッケージ
libicu57-devel.x86_64                                                                                       57.1-8.el7                                                                                        @okay
[oracle@centos ~]$ sudo yum remove libicu57-devel.x86_64
読み込んだプラグイン:fastestmirror, langpacks
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ libicu57-devel.x86_64 0:57.1-8.el7 を 削除
--> 依存性の処理をしています: pkgconfig(icu-uc) のパッケージ: harfbuzz-devel-1.7.5-2.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ harfbuzz-devel.x86_64 0:1.7.5-2.el7 を 削除
--> 依存性の処理をしています: pkgconfig(harfbuzz) のパッケージ: pango-devel-1.42.4-2.el7_6.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ pango-devel.x86_64 0:1.42.4-2.el7_6 を 削除
--> 依存性の処理をしています: pango-devel >= 1.20.0-1 のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pango) のパッケージ: gtk3-devel-3.22.30-3.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pango) のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangocairo) のパッケージ: gtk3-devel-3.22.30-3.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangocairo) のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangoft2) のパッケージ: gtk3-devel-3.22.30-3.el7.x86_64
--> 依存性の処理をしています: pkgconfig(pangoft2) のパッケージ: gtk2-devel-2.24.31-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ gtk2-devel.x86_64 0:2.24.31-1.el7 を 削除
---> パッケージ gtk3-devel.x86_64 0:3.22.30-3.el7 を 削除
--> 依存性解決を終了しました。

依存性を解決しました

===================================================================================================================================================================================================================
 Package                                               アーキテクチャー                              バージョン                                              リポジトリー                                     容量
===================================================================================================================================================================================================================
削除中:
 libicu57-devel                                        x86_64                                        57.1-8.el7                                              @okay                                           5.1 M
依存性関連での削除をします:
 gtk2-devel                                            x86_64                                        2.24.31-1.el7                                           @base                                            22 M
 gtk3-devel                                            x86_64                                        3.22.30-3.el7                                           @base                                            30 M
 harfbuzz-devel                                        x86_64                                        1.7.5-2.el7                                             @base                                           1.5 M
 pango-devel                                           x86_64                                        1.42.4-2.el7_6                                          @updates                                        3.2 M

トランザクションの要約
===================================================================================================================================================================================================================
削除  1 パッケージ (+4 個の依存関係のパッケージ)

インストール容量: 61 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  削除中                  : gtk2-devel-2.24.31-1.el7.x86_64                                                                                                                                                    1/5 
  削除中                  : gtk3-devel-3.22.30-3.el7.x86_64                                                                                                                                                    2/5 
  削除中                  : pango-devel-1.42.4-2.el7_6.x86_64                                                                                                                                                  3/5 
  削除中                  : harfbuzz-devel-1.7.5-2.el7.x86_64                                                                                                                                                  4/5 
  削除中                  : libicu57-devel-57.1-8.el7.x86_64                                                                                                                                                   5/5 
  検証中                  : gtk3-devel-3.22.30-3.el7.x86_64                                                                                                                                                    1/5 
  検証中                  : harfbuzz-devel-1.7.5-2.el7.x86_64                                                                                                                                                  2/5 
  検証中                  : pango-devel-1.42.4-2.el7_6.x86_64                                                                                                                                                  3/5 
  検証中                  : libicu57-devel-57.1-8.el7.x86_64                                                                                                                                                   4/5 
  検証中                  : gtk2-devel-2.24.31-1.el7.x86_64                                                                                                                                                    5/5 

削除しました:
  libicu57-devel.x86_64 0:57.1-8.el7                                                                                                                                                                               

依存性の削除をしました:
  gtk2-devel.x86_64 0:2.24.31-1.el7                  gtk3-devel.x86_64 0:3.22.30-3.el7                  harfbuzz-devel.x86_64 0:1.7.5-2.el7                  pango-devel.x86_64 0:1.42.4-2.el7_6                 

完了しました!

再いんすこ

コード表示

[oracle@centos ~]$ sudo yum install -y R --enablerepo=epel

いんすこ確認

コード表示

[oracle@centos ~]$ sudo yum install -y R --enablerepo=epel
[oracle@centos ~]$ R --version
R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.
[oracle@centos ~]$ which R
/usr/bin/R

動作確認

インタラクティブモードの終了はCTRL+Dを2回。

コード表示

[oracle@centos ~]$ R

R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)

R は、自由なソフトウェアであり、「完全に無保証」です。 
一定の条件に従えば、自由にこれを再配布することができます。 
配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください。 

R は多くの貢献者による共同プロジェクトです。 
詳しくは 'contributors()' と入力してください。 
また、R や R のパッケージを出版物で引用する際の形式については 
'citation()' と入力してください。 

'demo()' と入力すればデモをみることができます。 
'help()' とすればオンラインヘルプが出ます。 
'help.start()' で HTML ブラウザによるヘルプがみられます。 
'q()' と入力すれば R を終了します。 

> x<-data.frame(Titanic)
> x
   Class    Sex   Age Survived Freq
1    1st   Male Child       No    0
2    2nd   Male Child       No    0
3    3rd   Male Child       No   35
4   Crew   Male Child       No    0
5    1st Female Child       No    0
6    2nd Female Child       No    0
7    3rd Female Child       No   17
8   Crew Female Child       No    0
9    1st   Male Adult       No  118
10   2nd   Male Adult       No  154
11   3rd   Male Adult       No  387
12  Crew   Male Adult       No  670
13   1st Female Adult       No    4
14   2nd Female Adult       No   13
15   3rd Female Adult       No   89
16  Crew Female Adult       No    3
17   1st   Male Child      Yes    5
18   2nd   Male Child      Yes   11
19   3rd   Male Child      Yes   13
20  Crew   Male Child      Yes    0
21   1st Female Child      Yes    1
22   2nd Female Child      Yes   13
23   3rd Female Child      Yes   14
24  Crew Female Child      Yes    0
25   1st   Male Adult      Yes   57
26   2nd   Male Adult      Yes   14
27   3rd   Male Adult      Yes   75
28  Crew   Male Adult      Yes  192
29   1st Female Adult      Yes  140
30   2nd Female Adult      Yes   80
31   3rd Female Adult      Yes   76
32  Crew Female Adult      Yes   20
> summary(x)
  Class       Sex        Age     Survived      Freq       
 1st :8   Male  :16   Child:16   No :16   Min.   :  0.00  
 2nd :8   Female:16   Adult:16   Yes:16   1st Qu.:  0.75  
 3rd :8                                   Median : 13.50  
 Crew:8                                   Mean   : 68.78  
                                          3rd Qu.: 77.00  
                                          Max.   :670.00  

大量データ扱う時のレスポンスとか気になる

sqlみたいで楽しい。楽でいいな。

qiitaのストック記事が500件だった

こういうのをスクレイピングと呼ぶのかわからないが楽しい

grep -Pだとパール正規表現使えるぽい。u-link-no-underlineの指定を汎用的にかきたいね。ハイフン以外の文字列とハイフンで指定するのかな??

コード表示

curl -s https://qiita.com/ukijumotahaneniarukenia/like?page={1..25} | grep -o "\<a class=\"u-link-no-underline\" .*" | grep -o "href.*" | grep -oP ".*(?=</a)" | sed -e 's/href="//' -e 's/\">/\t/' | awk '{print "https://qiita.com"$1"\t"}{$1="";print $0" ""UNKO"}' | sed ':a;N;/UNKO/!ba;s/\n\{1,\}/ /g;s/UNKO//g;' | nl

generate-script.awkなるものを読んで思った所感

参考文献

 

参考にしたコマンド

上田さんのシェルこうそく開発手法にopenコマンド出て来て、それはmacだったので、linuxだとxdg-openにあたるぽい。徐にソースコードを落として適当に漁った。面白くて楽しい本!第2版も買いたいんだよなー。

フルスクラッチから1日でCMSを作る シェルスクリプト高速開発手法入門  
コード表示

[oracle@centos scripts]$ xdg-open --version
xdg-open 1.1.0 rc1
[oracle@centos scripts]$ yum provides xdg-open | grep -B 4 "$(which xdg-open)"
xdg-utils-1.1.0-0.17.20120809git.el7.noarch : Basic desktop integration
                                            : functions
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/xdg-open
--
xdg-utils-1.1.0-0.17.20120809git.el7.noarch : Basic desktop integration
                                            : functions
リポジトリー        : @anaconda
一致          :
ファイル名    : /usr/bin/xdg-open

ソースコードダウンロード

こういうのは規格とか調べないと汎用的なものは作れなそう

コード表示

[oracle@centos src]$ cat install.sh
#!/bin/bash

sudo yumdownloader --source xdg-utils-1.1.0-0.17.20120809git.el7.noarch

rpmdev-extract xdg-utils-1.1.0-0.17.20120809git.el7.src.rpm

cd xdg-utils-1.1.0-0.17.20120809git.el7.src

tar -xvf xdg-utils-1.1.0-20120809git.tar.gz

適当にファイル用意した

外部ファイルをgetlineでパス指定して読み込むんかーと。マークをsedで削除しちゃっているけど。ちなみにANKOはあんこじゃない。あんこの絵文字ない。

コード表示

[oracle@centos awk]$ ll ANKO UNKO gen.awk exclude.sed in out
-rwxr-xr-x. 1 oracle docker  72  7月 14 10:20 ANKO
-rwxr-xr-x. 1 oracle docker  72  7月 14 10:20 UNKO
-rw-r--r--. 1 oracle docker  16  7月 14 10:30 exclude.sed
-rwxr-xr-x. 1 oracle docker 172  7月 14 10:19 gen.awk
-rwxr-xr-x. 1 oracle docker  60  7月 14 10:24 in
-rw-r--r--. 1 oracle docker 194  7月 14 10:33 out
[oracle@centos awk]$ cat ANKO
for i in $(yes "$(echo -ne '\U1F194')" | head -n 5);do echo -ne $i;done
[oracle@centos awk]$ cat UNKO
for i in $(yes "$(echo -ne '\U1F4A9')" | head -n 5);do echo -ne $i;done
[oracle@centos awk]$ cat exclude.sed
/UNKO/d
/ANKO/d
[oracle@centos awk]$ cat gen.awk
#!/usr/local/bin/awk

{
  print
}

/UNKO/{
  while (getline < "./UNKO")
    print
  close ("./UNKO")
}

/ANKO/{
  while (getline < "./ANKO")
    print
  close ("./ANKO")
}
[oracle@centos awk]$ cat in
#!/bin/bash

unko(){
UNKO
}

anko(){
ANKO
}

unko
anko
echo
[oracle@centos awk]$ cat out
#!/bin/bash

unko(){
for i in $(yes "$(echo -ne '\U1F4A9')" | head -n 5);do echo -ne $i;done
}

anko(){
for i in $(yes "$(echo -ne '\U1F194')" | head -n 5);do echo -ne $i;done
}

unko
anko
echo

実行

いろいろごったに。三位一体感ある。teeでoutファイルを生成しつつ、結果を標準出力にだす。これはdebugしやすそう。


[oracle@centos awk]$ awk -f gen.awk in | sed -f exclude.sed | tee out | bash
💩💩💩💩💩🆔🆔🆔🆔🆔
[oracle@centos awk]$ ./out
bash: ./out: 許可がありません
[oracle@centos awk]$ chmod +x ./out
[oracle@centos awk]$ ./out
💩💩💩💩💩🆔🆔🆔🆔🆔

所感

切り出すと、どこに何かいたか把握するのたいへんなんだよな。ただ、それも楽しい。

bashの配列であそんだ

参考文献

配列の初期化

コード表示

[oracle@centos ~]$ echo {a..c} | sed -e 's/ /\n/g'
a
b
c
[oracle@centos ~]$ while read line;do echo ${line}; done < <(echo {a..c} | sed -e 's/ /\n/g')
a
b
c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ echo ${ary[@]}
a b c
[oracle@centos ~]$ echo ${#ary[@]}
3
[oracle@centos ~]$ ary=($(echo {a..c} | sed -e 's/ /\n/g'))
[oracle@centos ~]$ echo ${#ary[@]}
1
[oracle@centos ~]$ echo ${ary[@]}
a
b
c
[oracle@centos ~]$ ary=($(echo {a..c}))
[oracle@centos ~]$ echo ${#ary[@]}
1
[oracle@centos ~]$ echo ${ary[@]}
a b c

配列のコピー

こんなかんじ

コード表示

[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ echo ${ary[@]}
a b c
[oracle@centos ~]$ echo ${#ary[@]}
3
[oracle@centos ~]$ aryy=(${ary[@]})
[oracle@centos ~]$ echo ${aryy[@]}
a b c
[oracle@centos ~]$ echo ${#aryy[@]}
3

配列参照するときインデックス気にしなくてイイ

コード表示

[oracle@centos ~]$ ary=($(echo {a..c}))
[oracle@centos ~]$ for i in ${ary[@]};do echo $i; done
a b c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${ary[@]};do echo $i; done
a
b
c

配列の添字てんかいできるんだね、インデックス気にしたいならこっちか

コード表示

[oracle@centos ~]$ ary=($(echo {a..c}))
[oracle@centos ~]$ echo ${!ary[@]}
0
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ echo ${!ary[@]}
0 1 2
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c

配列の要素追加とか要素削除とか

一括削除、一括生成。コピーとか。

コード表示

[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
[oracle@centos ~]$ while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
3-->a
4-->b
5-->c
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
0-->a
1-->b
2-->c
3-->a
4-->b
5-->c
[oracle@centos ~]$ unset ary[@]
[oracle@centos ~]$ for ((i=0;i<${#ary[@]};i++));do echo $i'-->'${ary[$i]};done
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[1]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
2-->c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[0]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
1-->b
2-->c
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[2]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..c} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->b
2-->c
[oracle@centos ~]$ unset ary[1]
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
2-->c
[oracle@centos ~]$ tmp=(${ary[@]});while read line;do ary=();ary+=(${line}); done < <(echo ${tmp[@]})
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[$i]}; done
0-->a
1-->c

配列のスライス的な奴

コード表示

[oracle@centos ~]$ ary=();while read line;do ary+=(${line}); done < <(echo {a..z} | sed -e 's/ /\n/g')
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i'-->'${ary[@]:0:$i}; done
[oracle@centos ~]$ for i in ${!ary[@]};do echo $i+1'-->'${ary[@]:0:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(($i+1))'-->'${ary[@]:0:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $i+1'-->'${ary[@]:-($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $i+1'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(($i+1))'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]: -($i+1)}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:0:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:$i:$i+1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:$i:1}; done

[oracle@centos ~]$ for i in ${!ary[@]};do echo $(printf '%02d' $(echo $(($i+1))))'-->'${ary[@]:-$i:1}; done

sed デタラメな複数行を小綺麗な一行に変換する話

デタラメな複数行を小綺麗な一行に変換する

他にもいっぱいやり方あるとおもう

コード表示

[oracle@centos ~]$ cat ttt
UNKO IS
  BEATIFUL
   .

UNKO IS
  TITY
   .

UNKO IS
  FUNNY .
[oracle@centos ~]$ cat -n ttt
     1	UNKO IS
     2	  BEATIFUL
     3	   .
     4	
     5	UNKO IS
     6	  TITY
     7	   .
     8	
     9	UNKO IS
    10	  FUNNY .
[oracle@centos ~]$ cat ttt | sed -e '/^$/d ' -e ':a;N;/\.$/!ba;s/\n\s\{1,\}/ /g;s/ \.$/\./'
UNKO IS BEATIFUL.
UNKO IS TITY.
UNKO IS FUNNY.

デバッグしたやつ

コード表示

[oracle@centos ~]$ cat ttt | sedsed --debug -e '/^$/d ' -e ':a;N;/\.$/!ba;s/\n\s\{1,\}/ /g;s/ \.$/\./'
PATT:UNKO IS$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM::a
COMM:N
PATT:UNKO IS\n  BEATIFUL$
HOLD:$
COMM:/\.$/ !b a
COMM:N
PATT:UNKO IS\n  BEATIFUL\n   .$
HOLD:$
COMM:/\.$/ !b a
COMM:s/\n\s\{1,\}/ /g
PATT:UNKO IS BEATIFUL .$
HOLD:$
COMM:s/ \.$/\./
PATT:UNKO IS BEATIFUL.$
HOLD:$
UNKO IS BEATIFUL.
PATT:$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM::a
COMM:N
PATT:UNKO IS\n  TITY$
HOLD:$
COMM:/\.$/ !b a
COMM:N
PATT:UNKO IS\n  TITY\n   .$
HOLD:$
COMM:/\.$/ !b a
COMM:s/\n\s\{1,\}/ /g
PATT:UNKO IS TITY .$
HOLD:$
COMM:s/ \.$/\./
PATT:UNKO IS TITY.$
HOLD:$
UNKO IS TITY.
PATT:$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM:/^$/ d
PATT:UNKO IS$
HOLD:$
COMM::a
COMM:N
PATT:UNKO IS\n  FUNNY .$
HOLD:$
COMM:/\.$/ !b a
COMM:s/\n\s\{1,\}/ /g
PATT:UNKO IS FUNNY .$
HOLD:$
COMM:s/ \.$/\./
PATT:UNKO IS FUNNY.$
HOLD:$
UNKO IS FUNNY.

方針としてはまず、空行消す。ここまでが一行!みたいな終了FOOTSTAMPが検出されるまで、Nコマンドで次の入力行をPSへ改行付きで蓄積。ここでのFOOTSTAMPは「.」。で、改行と1回以上のスペースを1個のスペースに置換し、行末の「.」直前のスペースは空文字に置換。分かってくるとめちゃ楽し。

所感

sedわかってきちゃったかも。前処理だけじゃなくてsedでプログラムも書いてみたいなー。

sed 複数行を1行に置換する話

参考文献

このお方のtwwiterのシェル芸大好きです。

sedのデバッグやHTML化ができる『sedsed』  

まえがき

折角だからpythonデバッグツールあるぽいので、それでsedと仲良くなりたい。

コード表示

[oracle@centos ~]$ git clone https://github.com/aureliojargas/sedsed
[oracle@centos ~]$ sudo cp sedsed/sedsed.py /usr/local/bin/sedsed
[sudo] oracle のパスワード:
[oracle@centos ~]$ sedsed --version
sedsed v1.2-dev

複数行を1行に置換する

他にもいっぱいあるとおもう

コード表示

[oracle@centos web]$ cat ttt
a
b
c
[oracle@centos web]$ cat -n ttt
     1	a
     2	b
     3	c
[oracle@centos web]$ sed -n 'H;${x;s/\n/ /g;s/^ //;p}' ttt
a b c

デバッグしたやつ

コード表示

[oracle@centos ~]$ cat ttt | sedsed --debug -n 'H;${x;s/\n/ /g;s/^ //;p}'
PATT:a$
HOLD:$
COMM:H
PATT:a$
HOLD:\na$
COMM:$ {
PATT:a$
HOLD:\na$
PATT:b$
HOLD:\na$
COMM:H
PATT:b$
HOLD:\na\nb$
COMM:$ {
PATT:b$
HOLD:\na\nb$
PATT:c$
HOLD:\na\nb$
COMM:H
PATT:c$
HOLD:\na\nb\nc$
COMM:$ {
COMM:x
PATT:\na\nb\nc$
HOLD:c$
COMM:s/\n/ /g
PATT: a b c$
HOLD:c$
COMM:s/^ //
PATT:a b c$
HOLD:c$
COMM:p
a b c
PATT:a b c$
HOLD:c$
COMM:}
PATT:a b c$
HOLD:c$

HコマンドでPSの内容がHSへ改行付きでコピーされている。b,cも同じ様に実行されていき、HSに改行付で蓄えられている。ここまでがHコマンドの内容。xコマンドでHSの内容とPSの内容を交換している。パタンスペースに対してs/\n/ /gを実行し、改行をスペース区切りに変換した後、行頭が空白のものを空文字に置換している。で、最後にpコマンドでPSの内容を標準出力に出力している。-nオプションでデフォルトの挙動であるパタンスペースを出力する動きを抑止している。

抑止しなかったやつ。入力行ごとにグループ化されているコマンド郡は最終行「$」に対してまとまって実行されていて、a,bは最終行でないから実行されていなかったことが分かった。最終行でなくとも${は評価されているんだな。ぁぁぁ楽しい。面白い!!

コード表示

[oracle@centos ~]$ cat ttt | sedsed --debug 'H;${x;s/\n/ /g;s/^ //;p}'
PATT:a$
HOLD:$
COMM:H
PATT:a$
HOLD:\na$
COMM:$ {
PATT:a$
HOLD:\na$
a
PATT:b$
HOLD:\na$
COMM:H
PATT:b$
HOLD:\na\nb$
COMM:$ {
PATT:b$
HOLD:\na\nb$
b
PATT:c$
HOLD:\na\nb$
COMM:H
PATT:c$
HOLD:\na\nb\nc$
COMM:$ {
COMM:x
PATT:\na\nb\nc$
HOLD:c$
COMM:s/\n/ /g
PATT: a b c$
HOLD:c$
COMM:s/^ //
PATT:a b c$
HOLD:c$
COMM:p
a b c
PATT:a b c$
HOLD:c$
COMM:}
PATT:a b c$
HOLD:c$
a b c

sed 一文字ずつ切り取って後ろにくっ付ける話

参考文献

このお方のtwwiterのシェル芸大好きです。

sedのデバッグやHTML化ができる『sedsed』  

まえがき

折角だからpythonデバッグツールあるぽいので、それでsedと仲良くなりたい。

コード表示

[oracle@centos ~]$ git clone https://github.com/aureliojargas/sedsed
[oracle@centos ~]$ sudo cp sedsed/sedsed.py /usr/local/bin/sedsed
[sudo] oracle のパスワード:
[oracle@centos ~]$ sedsed --version
sedsed v1.2-dev

響け!ユーフォニアム

あるアニメのタイトルらしい。

sedは標準入力をPS(パターンスペース)に1行ずつ取り込む。pコマンドはPSにある中身を出力する。sは置換コマンドで直前のPSに対して処理する。/^ム/はムで始まるPSの意味。!付けているからムで始まらないPSをコマンドのアドレス条件に指定してる。bコマンドはアドレス条件を満たすときは指定したラベルにjumpする。ここでのラベルはaラベル。標準入力が最初1行だけだが、各スクリプトの実行結果をPSに保持して、そのPSにスクリプトを繰り返し実行し、出力しているところが面白い!!ループ処理なので、終了条件書くこと!

コード表示

[oracle@centos ~]$ echo 響け!ユーフォニアム | sed ':a;p;s/\(.\)\(.*\)/\2\1/;/^ム/!ba' | nl
     1	響け!ユーフォニアム
     2	け!ユーフォニアム響
     3	!ユーフォニアム響け
     4	ユーフォニアム響け!
     5	ーフォニアム響け!ユ
     6	フォニアム響け!ユー
     7	ォニアム響け!ユーフ
     8	ニアム響け!ユーフォ
     9	アム響け!ユーフォニ
    10	ム響け!ユーフォニア

デバッグしてみたやつ

コード表示

[oracle@centos ~]$ echo 響け!ユーフォニアム | sedsed --debug ':a;p;s/\(.\)\(.*\)/\2\1/;/^ム/!ba'
PATT:\351\237\277\343\201\221\357\274\201\343\203\246\343\203\274\343\
\203\225\343\202\251\343\203\213\343\202\242\343\203\240$
HOLD:$
COMM::a
COMM:p
響け!ユーフォニアム
PATT:\351\237\277\343\201\221\357\274\201\343\203\246\343\203\274\343\
\203\225\343\202\251\343\203\213\343\202\242\343\203\240$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\201\221\357\274\201\343\203\246\343\203\274\343\203\225\343\
\202\251\343\203\213\343\202\242\343\203\240\351\237\277$
HOLD:$
COMM:/^ム/ !b a
COMM:p
け!ユーフォニアム響
PATT:\343\201\221\357\274\201\343\203\246\343\203\274\343\203\225\343\
\202\251\343\203\213\343\202\242\343\203\240\351\237\277$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\357\274\201\343\203\246\343\203\274\343\203\225\343\202\251\343\
\203\213\343\202\242\343\203\240\351\237\277\343\201\221$
HOLD:$
COMM:/^ム/ !b a
COMM:p
!ユーフォニアム響け
PATT:\357\274\201\343\203\246\343\203\274\343\203\225\343\202\251\343\
\203\213\343\202\242\343\203\240\351\237\277\343\201\221$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\246\343\203\274\343\203\225\343\202\251\343\203\213\343\
\202\242\343\203\240\351\237\277\343\201\221\357\274\201$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ユーフォニアム響け!
PATT:\343\203\246\343\203\274\343\203\225\343\202\251\343\203\213\343\
\202\242\343\203\240\351\237\277\343\201\221\357\274\201$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\274\343\203\225\343\202\251\343\203\213\343\202\242\343\
\203\240\351\237\277\343\201\221\357\274\201\343\203\246$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ーフォニアム響け!ユ
PATT:\343\203\274\343\203\225\343\202\251\343\203\213\343\202\242\343\
\203\240\351\237\277\343\201\221\357\274\201\343\203\246$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\225\343\202\251\343\203\213\343\202\242\343\203\240\351\
\237\277\343\201\221\357\274\201\343\203\246\343\203\274$
HOLD:$
COMM:/^ム/ !b a
COMM:p
フォニアム響け!ユー
PATT:\343\203\225\343\202\251\343\203\213\343\202\242\343\203\240\351\
\237\277\343\201\221\357\274\201\343\203\246\343\203\274$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\202\251\343\203\213\343\202\242\343\203\240\351\237\277\343\
\201\221\357\274\201\343\203\246\343\203\274\343\203\225$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ォニアム響け!ユーフ
PATT:\343\202\251\343\203\213\343\202\242\343\203\240\351\237\277\343\
\201\221\357\274\201\343\203\246\343\203\274\343\203\225$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\213\343\202\242\343\203\240\351\237\277\343\201\221\357\
\274\201\343\203\246\343\203\274\343\203\225\343\202\251$
HOLD:$
COMM:/^ム/ !b a
COMM:p
ニアム響け!ユーフォ
PATT:\343\203\213\343\202\242\343\203\240\351\237\277\343\201\221\357\
\274\201\343\203\246\343\203\274\343\203\225\343\202\251$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\202\242\343\203\240\351\237\277\343\201\221\357\274\201\343\
\203\246\343\203\274\343\203\225\343\202\251\343\203\213$
HOLD:$
COMM:/^ム/ !b a
COMM:p
アム響け!ユーフォニ
PATT:\343\202\242\343\203\240\351\237\277\343\201\221\357\274\201\343\
\203\246\343\203\274\343\203\225\343\202\251\343\203\213$
HOLD:$
COMM:s/\(.\)\(.*\)/\2\1/
PATT:\343\203\240\351\237\277\343\201\221\357\274\201\343\203\246\343\
\203\274\343\203\225\343\202\251\343\203\213\343\202\242$
HOLD:$
COMM:/^ム/ !b a
PATT:\343\203\240\351\237\277\343\201\221\357\274\201\343\203\246\343\
\203\274\343\203\225\343\202\251\343\203\213\343\202\242$
HOLD:$
ム響け!ユーフォニア

go言語いんすこ

触れてみたかった!

今年の下半期でgoで何かつくりたい。9月以降かな。それまではshell力高める。

コード表示

[oracle@centos ~]$ sudo yum install -y go
[oracle@centos ~]$ which go
/usr/bin/go
インストール:
  golang.x86_64 0:1.11.5-1.el7                                                                                                                                                                                     

[oracle@centos gooooo]$ yum provides go
golang-1.11.5-1.el7.x86_64 : The Go Programming Language
リポジトリー        : epel
一致          :
Provides    : go = 1.11.5-1.el7
[oracle@centos gooooo]$ cat hw.go
package main
 
import "fmt"
 
func main(){
  fmt.Printf("Hello World!")
}
[oracle@centos gooooo]$ go build hw.go
[oracle@centos gooooo]$ ll
合計 1880
-rwxr-xr-x. 1 oracle docker 1919238  6月 26 19:43 hw
-rw-r--r--. 1 oracle docker      74  6月 26 19:38 hw.go
[oracle@centos gooooo]$ ./hw
Hello World![oracle@centos gooooo]$ 

yumでソースコードいんすこ

参考文献

yum でソースコードをダウンロードしたい  
Linuxコマンドのソースコードを取得する方法:オリジナルコマンド作成前の勉強向け  

coreutilsためしにいれてみる

コード表示

[oracle@centos ~]$ sudo yum install -y yum-utils

[oracle@centos ~]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls

[oracle@centos ~]$ yum whatprovides /usr/bin/ls
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * centos-qemu-ev: ftp.iij.ad.jp
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp
coreutils-8.22-23.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
リポジトリー        : base
一致          :
ファイル名    : /usr/bin/ls



coreutils-8.22-23.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
リポジトリー        : @base
一致          :
ファイル名    : /usr/bin/ls



[oracle@centos ~]$ sudo yumdownloader --source coreutils-8.22-23.el7.x86_64

[oracle@centos ~]$ find / -name "*coreutils-8.22-23.el7.src.rpm*" 2>/dev/null
/home/oracle/coreutils-8.22-23.el7.src.rpm
[oracle@centos ~]$ ll
合計 380472
-rw-r--r--.  1 oracle docker 383991324  5月 24 04:19 CentOS-7-x86_64-Vagrant-1902_01.Libvirt.box
drwxr-xr-x.  2 oracle docker      4096  6月 23 08:39 Desktop
drwxr-xr-x.  2 oracle docker      4096  6月 14 09:25 Documents
drwxr-xr-x.  2 oracle docker      4096  6月 22 15:06 Downloads
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Music
drwxr-xr-x.  2 oracle docker      4096  6月 14 20:02 Pictures
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Public
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Templates
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Videos
-rw-r--r--.  1 root   root     5518732 11月 13  2018 coreutils-8.22-23.el7.src.rpm
drwxr-xr-x. 25 oracle docker      4096  5月 25 12:58 docker-images
drwxr-xr-x.  4 oracle docker      4096  6月  3 06:33 doclan
drwxr-xr-x.  7 oracle docker      4096  6月  3 22:00 ff
drwxr-xr-x.  2 oracle docker      4096  6月 14 13:18 gg
drwxr-xr-x.  3 oracle docker      4096  5月 25 15:01 jj
drwxr-xr-x.  6 oracle docker      4096  6月  6 23:23 kk
drwxr-xr-x.  9 oracle docker      4096  6月  9 18:22 pp
drwxr-xr-x. 11 oracle docker      4096  6月 23 08:00 rr
drwxr-xr-x.  2 oracle docker      4096  6月 21 07:38 tmp
drwxr-xr-x.  4 oracle docker      4096  6月  7 19:45 tt
drwxr-xr-x.  7 oracle docker      4096  6月  7 01:06 vx
drwxr-xr-x.  4 oracle docker      4096  5月 25 10:29 weban

[oracle@centos ~]$ mkdir centos_coreutils
[oracle@centos ~]$ ll
合計 380476
-rw-r--r--.  1 oracle docker 383991324  5月 24 04:19 CentOS-7-x86_64-Vagrant-1902_01.Libvirt.box
drwxr-xr-x.  2 oracle docker      4096  6月 23 08:40 Desktop
drwxr-xr-x.  2 oracle docker      4096  6月 14 09:25 Documents
drwxr-xr-x.  2 oracle docker      4096  6月 22 15:06 Downloads
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Music
drwxr-xr-x.  2 oracle docker      4096  6月 14 20:02 Pictures
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Public
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Templates
drwxr-xr-x.  2 oracle docker      4096  5月 12 16:16 Videos
drwxr-xr-x.  2 oracle docker      4096  6月 23 08:42 centos_coreutils
-rw-r--r--.  1 root   root     5518732 11月 13  2018 coreutils-8.22-23.el7.src.rpm
drwxr-xr-x. 25 oracle docker      4096  5月 25 12:58 docker-images
drwxr-xr-x.  4 oracle docker      4096  6月  3 06:33 doclan
drwxr-xr-x.  7 oracle docker      4096  6月  3 22:00 ff
drwxr-xr-x.  2 oracle docker      4096  6月 14 13:18 gg
drwxr-xr-x.  3 oracle docker      4096  5月 25 15:01 jj
drwxr-xr-x.  6 oracle docker      4096  6月  6 23:23 kk
drwxr-xr-x.  9 oracle docker      4096  6月  9 18:22 pp
drwxr-xr-x. 11 oracle docker      4096  6月 23 08:00 rr
drwxr-xr-x.  2 oracle docker      4096  6月 21 07:38 tmp
drwxr-xr-x.  4 oracle docker      4096  6月  7 19:45 tt
drwxr-xr-x.  7 oracle docker      4096  6月  7 01:06 vx
drwxr-xr-x.  4 oracle docker      4096  5月 25 10:29 weban


[oracle@centos ~]$ cd centos_coreutils
[oracle@centos centos_coreutils]$ pwd
/home/oracle/centos_coreutils


[oracle@centos centos_coreutils]$ ll
合計 5744
-rw-rw-r--. 1 oracle docker     868  6月 23 08:44 coreutils-4.5.3-langinfo.patch
-rw-rw-r--. 1 oracle docker    5427  6月 23 08:44 coreutils-6.10-configuration.patch
-rw-rw-r--. 1 oracle docker     576  6月 23 08:44 coreutils-6.10-manpages.patch
-rw-rw-r--. 1 oracle docker     617  6月 23 08:44 coreutils-7.4-sttytcsadrain.patch
-rw-rw-r--. 1 oracle docker    1471  6月 23 08:44 coreutils-8.2-uname-processortype.patch
-rw-rw-r--. 1 oracle docker    3758  6月 23 08:44 coreutils-8.22-cp-selinux.patch
-rw-rw-r--. 1 oracle docker   11416  6月 23 08:44 coreutils-8.22-cp-sparsecorrupt.patch
-rw-rw-r--. 1 oracle docker    1633  6月 23 08:44 coreutils-8.22-date-emptyTZ.patch
-rw-rw-r--. 1 oracle docker   16663  6月 23 08:44 coreutils-8.22-dd-progress.patch
-rw-rw-r--. 1 oracle docker    1575  6月 23 08:44 coreutils-8.22-df-autofs.patch
-rw-rw-r--. 1 oracle docker   18860  6月 23 08:44 coreutils-8.22-df-filtermountlistupdate.patch
-rw-rw-r--. 1 oracle docker    3651  6月 23 08:44 coreutils-8.22-df-getdisk.patch
-rw-rw-r--. 1 oracle docker    2773  6月 23 08:44 coreutils-8.22-df-stat.patch
-rw-rw-r--. 1 oracle docker    5801  6月 23 08:44 coreutils-8.22-du-bindmountcycles.patch
-rw-rw-r--. 1 oracle docker    1363  6月 23 08:44 coreutils-8.22-failingtests.patch
-rw-rw-r--. 1 oracle docker    1477  6月 23 08:44 coreutils-8.22-id-groups.patch
-rw-rw-r--. 1 oracle docker    6854  6月 23 08:44 coreutils-8.22-ls-interruption.patch
-rw-rw-r--. 1 oracle docker   14467  6月 23 08:44 coreutils-8.22-mv-hardlinksrace.patch
-rw-rw-r--. 1 oracle docker   37417  6月 23 08:44 coreutils-8.22-mv-n-noreplace.patch
-rw-rw-r--. 1 oracle docker    6740  6月 23 08:44 coreutils-8.22-newfilesystems.patch
-rw-rw-r--. 1 oracle docker   10225  6月 23 08:44 coreutils-8.22-non-defaulttests.patch
-rw-rw-r--. 1 oracle docker    1895  6月 23 08:44 coreutils-8.22-ppc64le.patch
-rw-rw-r--. 1 oracle docker    4559  6月 23 08:44 coreutils-8.22-selinux-optionsseparate.patch
-rw-rw-r--. 1 oracle docker    1145  6月 23 08:44 coreutils-8.22-sort-blanks.patch
-rw-rw-r--. 1 oracle docker     563  6月 23 08:44 coreutils-8.22-temporarytestoff.patch
-rw-rw-r--. 1 oracle docker     588  6月 23 08:44 coreutils-8.22-vxfs-noinotify.patch
-rw-rw-r--. 1 oracle docker    1226  6月 23 08:44 coreutils-8.22-xfs-tests.patch
-rw-rw-r--. 1 oracle docker    2593  6月 23 08:44 coreutils-8.22-xfsbuildfailure.patch
-rw-rw-r--. 1 oracle docker 5335124  6月 23 08:44 coreutils-8.22.tar.xz
-rw-rw-r--. 1 oracle docker     685  6月 23 08:44 coreutils-8.4-mkdir-modenote.patch
-rw-rw-r--. 1 oracle docker    5090  6月 23 08:44 coreutils-DIR_COLORS
-rw-rw-r--. 1 oracle docker    5725  6月 23 08:44 coreutils-DIR_COLORS.256color
-rw-rw-r--. 1 oracle docker    4669  6月 23 08:44 coreutils-DIR_COLORS.lightbgcolor
-rwxrwxr-x. 1 oracle docker    1741  6月 23 08:44 coreutils-colorls.csh
-rwxrwxr-x. 1 oracle docker    1606  6月 23 08:44 coreutils-colorls.sh
-rw-rw-r--. 1 oracle docker    6026  6月 23 08:44 coreutils-df-direct.patch
-rw-rw-r--. 1 oracle docker    2291  6月 23 08:44 coreutils-getgrouplist.patch
-rw-rw-r--. 1 oracle docker    2509  6月 23 08:44 coreutils-i18n-fold-newline.patch
-rw-rw-r--. 1 oracle docker    3070  6月 23 08:44 coreutils-i18n-sort-memleak.patch
-rw-rw-r--. 1 oracle docker  147328  6月 23 08:44 coreutils-i18n.patch
-rw-rw-r--. 1 oracle docker     331  6月 23 08:44 coreutils-overflow.patch
-rw-rw-r--. 1 oracle docker   19930  6月 23 08:44 coreutils-selinux.patch
-rw-rw-r--. 1 oracle docker    2249  6月 23 08:44 coreutils-selinuxmanpages.patch
-rw-rw-r--. 1 oracle docker   72699  6月 23 08:44 coreutils.spec
-rw-rw-r--. 1 oracle docker     590  6月 23 08:44 sh-utils-2.0.11-dateman.patch


[oracle@centos centos_coreutils]$ tar -xvf coreutils-8.22.tar.xz


[oracle@centos src]$ ll
合計 2808
-rw-r--r--. 1 oracle docker   8640 12月  4  2013 base64.c
-rw-r--r--. 1 oracle docker   4919 12月  4  2013 basename.c
-rw-r--r--. 1 oracle docker   5290 12月  4  2013 c99-to-c89.diff
-rw-r--r--. 1 oracle docker  22725 12月  4  2013 cat.c
-rw-r--r--. 1 oracle docker  16355 12月  4  2013 chcon.c
-rw-r--r--. 1 oracle docker   8836 12月  4  2013 chgrp.c
-rw-r--r--. 1 oracle docker  15845 12月  4  2013 chmod.c
-rw-r--r--. 1 oracle docker  17246 12月  4  2013 chown-core.c
-rw-r--r--. 1 oracle docker   2281 12月  4  2013 chown-core.h
-rw-r--r--. 1 oracle docker  10116 12月  4  2013 chown.c
-rw-r--r--. 1 oracle docker   6821 12月  4  2013 chroot.c
-rw-r--r--. 1 oracle docker   9879 12月  4  2013 cksum.c
-rw-r--r--. 1 oracle docker  12863 12月  4  2013 comm.c
-rw-r--r--. 1 oracle docker 102362 12月  5  2013 copy.c
-rw-r--r--. 1 oracle docker  10637 12月  4  2013 copy.h
-rw-r--r--. 1 oracle docker   4645 12月  4  2013 cp-hash.c
-rw-r--r--. 1 oracle docker    204 12月  4  2013 cp-hash.h
-rw-r--r--. 1 oracle docker  39399 12月  5  2013 cp.c
-rw-r--r--. 1 oracle docker  39607 12月  4  2013 csplit.c
-r--r--r--. 1 oracle docker   3209 12月 13  2013 cu-progs.mk
-rw-r--r--. 1 oracle docker  22606 12月  4  2013 cut.c
-rw-r--r--. 1 oracle docker  16993 12月  4  2013 date.c
-rwxr-xr-x. 1 oracle docker   1334 12月  4  2013 dcgen
-rw-r--r--. 1 oracle docker  72722 12月  4  2013 dd.c
-rw-r--r--. 1 oracle docker  46625 12月  4  2013 df.c
-rw-r--r--. 1 oracle docker  12875 12月  4  2013 dircolors.c
-r--r--r--. 1 oracle docker  18409 12月  9  2013 dircolors.h
-rw-r--r--. 1 oracle docker   4582 12月  4  2013 dircolors.hin
-rw-r--r--. 1 oracle docker   3188 12月  4  2013 dirname.c
-rw-r--r--. 1 oracle docker  33767 12月  4  2013 du.c
-rw-r--r--. 1 oracle docker   7630 12月  4  2013 echo.c
-rw-r--r--. 1 oracle docker   4387 12月  4  2013 env.c
-rw-r--r--. 1 oracle docker  11212 12月  4  2013 expand.c
-rw-r--r--. 1 oracle docker  21189 12月  4  2013 expr.c
-rw-r--r--. 1 oracle docker   7620 12月  4  2013 extent-scan.c
-rw-r--r--. 1 oracle docker   2099 12月  4  2013 extent-scan.h
-rw-r--r--. 1 oracle docker   4637 12月  4  2013 extract-magic
-rw-r--r--. 1 oracle docker  74954 12月  4  2013 factor.c
-rw-r--r--. 1 oracle docker     51 12月  4  2013 false.c
-rw-r--r--. 1 oracle docker   3052 12月  4  2013 fiemap.h
-rw-r--r--. 1 oracle docker   3345 12月  4  2013 find-mount-point.c
-rw-r--r--. 1 oracle docker    836 12月  4  2013 find-mount-point.h
-rw-r--r--. 1 oracle docker  28532 12月  4  2013 fmt.c
-rw-r--r--. 1 oracle docker   8195 12月  4  2013 fold.c
-r--r--r--. 1 oracle docker   3921 12月 13  2013 fs-is-local.h
-r--r--r--. 1 oracle docker   3571 12月 13  2013 fs.h
-rw-r--r--. 1 oracle docker   5221 12月  4  2013 getlimits.c
-rw-r--r--. 1 oracle docker   3121 12月  4  2013 group-list.c
-rw-r--r--. 1 oracle docker    865 12月  4  2013 group-list.h
-rw-r--r--. 1 oracle docker   3837 12月  4  2013 groups.c
-rw-r--r--. 1 oracle docker  32194 12月  4  2013 head.c
-rw-r--r--. 1 oracle docker   2355 12月  4  2013 hostid.c
-rw-r--r--. 1 oracle docker   3107 12月  4  2013 hostname.c
-rw-r--r--. 1 oracle docker  12624 12月  4  2013 id.c
-rw-r--r--. 1 oracle docker  30866 12月  4  2013 install.c
-rw-r--r--. 1 oracle docker   2710 12月  4  2013 ioblksize.h
-rw-r--r--. 1 oracle docker  32132 12月  4  2013 join.c
-rw-r--r--. 1 oracle docker   8823 12月  4  2013 kill.c
-rw-r--r--. 1 oracle docker     37 12月  4  2013 lbracket.c
-rw-r--r--. 1 oracle docker   4724 12月  4  2013 libstdbuf.c
-rw-r--r--. 1 oracle docker   2605 12月  4  2013 link.c
-rw-r--r--. 1 oracle docker  21549 12月  4  2013 ln.c
-rw-r--r--. 1 oracle docker  17421 12月  4  2013 local.mk
-rw-r--r--. 1 oracle docker   2259 12月  4  2013 logname.c
-rw-r--r--. 1 oracle docker  78147 12月  4  2013 longlong.h
-rw-r--r--. 1 oracle docker     44 12月  4  2013 ls-dir.c
-rw-r--r--. 1 oracle docker     37 12月  4  2013 ls-ls.c
-rw-r--r--. 1 oracle docker     46 12月  4  2013 ls-vdir.c
-rw-r--r--. 1 oracle docker 151003 12月  4  2013 ls.c
-rw-r--r--. 1 oracle docker    201 12月  4  2013 ls.h
-rw-r--r--. 1 oracle docker   5766 12月  4  2013 make-prime-list.c
-rw-r--r--. 1 oracle docker  24492 12月  4  2013 md5sum.c
-rw-r--r--. 1 oracle docker   9062 12月  5  2013 mkdir.c
-rw-r--r--. 1 oracle docker   4933 12月  5  2013 mkfifo.c
-rw-r--r--. 1 oracle docker   8116 12月  5  2013 mknod.c
-rw-r--r--. 1 oracle docker  10046 12月  4  2013 mktemp.c
-rw-r--r--. 1 oracle docker  16286 12月  5  2013 mv.c
-rw-r--r--. 1 oracle docker   6035 12月  4  2013 nice.c
-rw-r--r--. 1 oracle docker  16275 12月  4  2013 nl.c
-rw-r--r--. 1 oracle docker   7907 12月  4  2013 nohup.c
-rw-r--r--. 1 oracle docker   3220 12月  4  2013 nproc.c
-rw-r--r--. 1 oracle docker  41966 12月  4  2013 numfmt.c
-rw-r--r--. 1 oracle docker  57126 12月  4  2013 od.c
-rw-r--r--. 1 oracle docker   2317 12月  4  2013 operand2sig.c
-rw-r--r--. 1 oracle docker    832 12月  4  2013 operand2sig.h
-rw-r--r--. 1 oracle docker  14970 12月  4  2013 paste.c
-rw-r--r--. 1 oracle docker  11819 12月  4  2013 pathchk.c
-rw-r--r--. 1 oracle docker  14943 12月  4  2013 pinky.c
-rw-r--r--. 1 oracle docker  86849 12月  4  2013 pr.c
-r--r--r--. 1 oracle docker 104356 12月  9  2013 primes.h
-rw-r--r--. 1 oracle docker   4059 12月  4  2013 printenv.c
-rw-r--r--. 1 oracle docker  19700 12月  4  2013 printf.c
-rw-r--r--. 1 oracle docker   1174 12月  4  2013 prog-fprintf.c
-rw-r--r--. 1 oracle docker    962 12月  4  2013 prog-fprintf.h
-rw-r--r--. 1 oracle docker  69914 12月  4  2013 ptx.c
-rw-r--r--. 1 oracle docker  10591 12月  4  2013 pwd.c
-rw-r--r--. 1 oracle docker   5112 12月  4  2013 readlink.c
-rw-r--r--. 1 oracle docker   7794 12月  4  2013 realpath.c
-rw-r--r--. 1 oracle docker   3654 12月  4  2013 relpath.c
-rw-r--r--. 1 oracle docker    918 12月  4  2013 relpath.h
-rw-r--r--. 1 oracle docker  19761 12月  4  2013 remove.c
-rw-r--r--. 1 oracle docker   3015 12月  4  2013 remove.h
-rw-r--r--. 1 oracle docker  10477 12月  4  2013 rm.c
-rw-r--r--. 1 oracle docker   6786 12月  4  2013 rmdir.c
-rw-r--r--. 1 oracle docker   8035 12月  4  2013 runcon.c
-rw-r--r--. 1 oracle docker   8986 12月  4  2013 selinux.c
-rw-r--r--. 1 oracle docker   1459 12月  5  2013 selinux.h
-rw-r--r--. 1 oracle docker  18070 12月  4  2013 seq.c
-rw-r--r--. 1 oracle docker   6033 12月  4  2013 setuidgid.c
-rw-r--r--. 1 oracle docker  40495 12月  4  2013 shred.c
-rw-r--r--. 1 oracle docker  17528 12月  9  2013 shuf.c
-rw-r--r--. 1 oracle docker   3913 12月  4  2013 sleep.c
-rw-r--r--. 1 oracle docker 143380 12月  4  2013 sort.c
-rw-r--r--. 1 oracle docker  46504 12月  4  2013 split.c
-rw-r--r--. 1 oracle docker  46255 12月 13  2013 stat.c
-rw-r--r--. 1 oracle docker  10090 12月  4  2013 stdbuf.c
-rw-r--r--. 1 oracle docker  55677 12月  4  2013 stty.c
-rw-r--r--. 1 oracle docker   6726 12月  4  2013 sum.c
-rw-r--r--. 1 oracle docker   1977 12月  4  2013 sync.c
-rw-r--r--. 1 oracle docker  18060 12月  5  2013 system.h
-rw-r--r--. 1 oracle docker   5973 12月  4  2013 tac-pipe.c
-rw-r--r--. 1 oracle docker  20994 12月  4  2013 tac.c
-rw-r--r--. 1 oracle docker  69842 12月  9  2013 tail.c
-rw-r--r--. 1 oracle docker   5705 12月  4  2013 tee.c
-rw-r--r--. 1 oracle docker  22830 12月  4  2013 test.c
-rw-r--r--. 1 oracle docker  15652 12月  4  2013 timeout.c
-rw-r--r--. 1 oracle docker  13015 12月  4  2013 touch.c
-rw-r--r--. 1 oracle docker  60347 12月  4  2013 tr.c
-rw-r--r--. 1 oracle docker   2233 12月  4  2013 true.c
-rw-r--r--. 1 oracle docker  12173 12月  4  2013 truncate.c
-rw-r--r--. 1 oracle docker  14063 12月  4  2013 tsort.c
-rw-r--r--. 1 oracle docker   3054 12月  4  2013 tty.c
-rw-r--r--. 1 oracle docker     48 12月  4  2013 uname-arch.c
-rw-r--r--. 1 oracle docker     49 12月  4  2013 uname-uname.c
-rw-r--r--. 1 oracle docker   9910 12月  4  2013 uname.c
-rw-r--r--. 1 oracle docker    146 12月  4  2013 uname.h
-rw-r--r--. 1 oracle docker  15221 12月  4  2013 unexpand.c
-rw-r--r--. 1 oracle docker  18932 12月  4  2013 uniq.c
-rw-r--r--. 1 oracle docker   2392 12月  4  2013 unlink.c
-rw-r--r--. 1 oracle docker   6767 12月  4  2013 uptime.c
-rw-r--r--. 1 oracle docker   3610 12月  4  2013 users.c
-rw-r--r--. 1 oracle docker  23793 12月  4  2013 wc.c
-rw-r--r--. 1 oracle docker  22102 12月  4  2013 who.c
-rw-r--r--. 1 oracle docker   2482 12月  4  2013 whoami.c
-rw-r--r--. 1 oracle docker   2312 12月  4  2013 yes.c

gawk 5.0.0いんすこ

参考文献

configure, make, make install とは何か  
【 which 】コマンド――実行コマンドのフルパスを表示する  
GNU awk 5.0.0がリリース - 名前空間が実装されたメジャーバージョンアップ版  
https://qiita.com/ryuichi1208/items/fe625fba0afe0ec46789  
Gawk 5.0.0 released!  

実行例

コード表示

[oracle@centos rr]$ gawk --version | head -n 1
GNU Awk 4.0.2
[oracle@centos ff]$ ll
合計 0
[oracle@centos ff]$ curl -LO ftp://ftp.gnu.org/gnu/gawk/gawk-5.0.0.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 5628k  100 5628k    0     0   222k      0  0:00:25  0:00:25 --:--:--  303k
[oracle@centos ff]$ ll
合計 5632
-rw-r--r--. 1 oracle docker 5763496  6月 23 13:45 gawk-5.0.0.tar.gz
[oracle@centos ff]$ tar -zxvf gawk-5.0.0.tar.gz
[oracle@centos ff]$ ll
合計 5636
drwxr-xr-x. 15 oracle docker    4096  4月 12 18:31 gawk-5.0.0
-rw-r--r--.  1 oracle docker 5763496  6月 23 13:45 gawk-5.0.0.tar.gz
[oracle@centos ff]$ cd gawk-5.0.0/
[oracle@centos gawk-5.0.0]$ pwd
/home/oracle/ff/gawk-5.0.0
[oracle@centos gawk-5.0.0]$ ll | grep conf
-rwxr-xr-x. 1 oracle docker  47840  4月 11 03:29 config.guess
-rwxr-xr-x. 1 oracle docker  18574  4月 11 03:29 config.rpath
-rwxr-xr-x. 1 oracle docker  31589  4月 11 03:29 config.sub
-rw-r--r--. 1 oracle docker  13627  4月 12 18:03 configh.in
-rwxr-xr-x. 1 oracle docker 375070  4月 12 18:03 configure
-rw-r--r--. 1 oracle docker  12818  4月 12 18:02 configure.ac

[oracle@centos gawk-5.0.0]$ ./configure
[oracle@centos gawk-5.0.0]$ make
[oracle@centos gawk-5.0.0]$ ll
合計 9684
-rw-r--r--. 1 oracle docker   94012  4月  5 16:37 ABOUT-NLS
-rw-r--r--. 1 oracle docker     495 12月 15  2017 AUTHORS
-rw-r--r--. 1 oracle docker   35147 12月 15  2017 COPYING
-rw-r--r--. 1 oracle docker     298  4月 12 18:19 ChangeLog
-rw-r--r--. 1 oracle docker  378804  4月  5 16:38 ChangeLog.0
-rw-r--r--. 1 oracle docker   15752 12月 24 05:01 INSTALL
-rw-r--r--. 1 oracle docker   42397  6月 23 13:48 Makefile
-rw-r--r--. 1 oracle docker    5841  4月  5 16:38 Makefile.am
-rw-r--r--. 1 oracle docker   43725  4月 12 18:03 Makefile.in
-rw-r--r--. 1 oracle docker    2039  4月  8 03:53 NEWS
-rw-r--r--. 1 oracle docker   85116 12月 15  2017 NEWS.0
-rw-r--r--. 1 oracle docker   18602  4月  5 16:38 NEWS.1
-rw-r--r--. 1 oracle docker    1980 12月 24 05:01 POSIX.STD
-rw-r--r--. 1 oracle docker    3852  4月 12 17:59 README
drwxr-xr-x. 2 oracle docker    4096  4月 12 18:18 README_d
-rw-r--r--. 1 oracle docker    4705  4月  5 16:38 TODO
-rw-r--r--. 1 oracle docker   42419  4月 12 18:03 aclocal.m4
-rw-r--r--. 1 oracle docker   32676  4月  5 16:38 array.c
-rw-r--r--. 1 oracle docker  137216  6月 23 13:50 array.o
-rw-r--r--. 1 oracle docker   60231  4月 11 04:06 awk.h
-rw-r--r--. 1 oracle docker  261884  4月 12 18:02 awkgram.c
-rw-r--r--. 1 oracle docker  489048  6月 23 13:50 awkgram.o
-rw-r--r--. 1 oracle docker  165324  4月  9 03:49 awkgram.y
drwxr-xr-x. 4 oracle docker    4096  6月 23 13:50 awklib
-rw-r--r--. 1 oracle docker  100458  4月  5 16:38 builtin.c
-rw-r--r--. 1 oracle docker  519832  6月 23 13:50 builtin.o
-rw-r--r--. 1 oracle docker   28915  4月  5 16:38 cint_array.c
-rw-r--r--. 1 oracle docker  103608  6月 23 13:50 cint_array.o
-rw-r--r--. 1 oracle docker    5589  4月  5 16:37 cmd.h
-rw-r--r--. 1 oracle docker  101640  4月 12 18:02 command.c
-rw-r--r--. 1 oracle docker  153760  6月 23 13:50 command.o
-rw-r--r--. 1 oracle docker   39774  4月  5 16:38 command.y
-rwxr-xr-x. 1 oracle docker    7383  4月 11 03:29 compile
-rwxr-xr-x. 1 oracle docker   47840  4月 11 03:29 config.guess
-rw-r--r--. 1 oracle docker   14345  6月 23 13:48 config.h
-rw-r--r--. 1 oracle docker  132076  6月 23 13:48 config.log
-rwxr-xr-x. 1 oracle docker   18574  4月 11 03:29 config.rpath
-rwxr-xr-x. 1 oracle docker   43287  6月 23 13:48 config.status
-rwxr-xr-x. 1 oracle docker   31589  4月 11 03:29 config.sub
-rw-r--r--. 1 oracle docker   13627  4月 12 18:03 configh.in
-rwxr-xr-x. 1 oracle docker  375070  4月 12 18:03 configure
-rw-r--r--. 1 oracle docker   12818  4月 12 18:02 configure.ac
-rw-r--r--. 1 oracle docker    2355  4月  5 16:38 custom.h
-rw-r--r--. 1 oracle docker  142002  4月  5 16:38 debug.c
-rw-r--r--. 1 oracle docker  593376  6月 23 13:50 debug.o
-rwxr-xr-x. 1 oracle docker   23568  4月 11 03:29 depcomp
drwxr-xr-x. 3 oracle docker    4096  6月 23 13:48 doc
-rw-r--r--. 1 oracle docker   43584  4月  8 03:53 eval.c
-rw-r--r--. 1 oracle docker  449304  6月 23 13:50 eval.o
-rw-r--r--. 1 oracle docker    6983  4月  5 16:38 ext.c
-rw-r--r--. 1 oracle docker   52184  6月 23 13:50 ext.o
drwxr-xr-x. 7 oracle docker    4096  6月 23 13:50 extension
drwxr-xr-x. 2 oracle docker    4096  6月 23 13:48 extras
-rw-r--r--. 1 oracle docker   43912  4月  5 16:38 field.c
-rw-r--r--. 1 oracle docker  149752  6月 23 13:50 field.o
-rw-r--r--. 1 oracle docker    3457  4月  5 16:29 floatcomp.c
-rw-r--r--. 1 oracle docker   19976  6月 23 13:50 floatcomp.o
-rw-r--r--. 1 oracle docker    1873  4月  5 16:29 floatmagic.h
-rwxr-xr-x. 1 oracle docker 2583080  6月 23 13:50 gawk
-rw-r--r--. 1 oracle docker   35948  4月  5 16:38 gawkapi.c
-rw-r--r--. 1 oracle docker   40486  4月  5 16:38 gawkapi.h
-rw-r--r--. 1 oracle docker  134312  6月 23 13:50 gawkapi.o
-rw-r--r--. 1 oracle docker    1397  4月  5 16:37 gawkmisc.c
-rw-r--r--. 1 oracle docker   37544  6月 23 13:50 gawkmisc.o
-rw-r--r--. 1 oracle docker   10478  4月  5 16:37 gettext.h
-rwxr-xr-x. 1 oracle docker   15368  4月 11 03:29 install-sh
-rw-r--r--. 1 oracle docker   20750  4月  5 16:38 int_array.c
-rw-r--r--. 1 oracle docker   76472  6月 23 13:50 int_array.o
-rw-r--r--. 1 oracle docker   36205  4月  5 16:38 interpret.h
-rw-r--r--. 1 oracle docker  112095  4月  5 16:37 io.c
-rw-r--r--. 1 oracle docker  286528  6月 23 13:50 io.o
drwxr-xr-x. 2 oracle docker    4096  4月 12 18:23 m4
-rw-r--r--. 1 oracle docker   47396  4月  8 03:53 main.c
-rw-r--r--. 1 oracle docker  188640  6月 23 13:50 main.o
-rw-r--r--. 1 oracle docker    1678  4月  5 16:37 mbsupport.h
-rwxr-xr-x. 1 oracle docker    6872 12月 24 05:01 missing
drwxr-xr-x. 2 oracle docker    4096  4月 12 18:23 missing_d
-rwxr-xr-x. 1 oracle docker    3539  4月 11 03:29 mkinstalldirs
-rw-r--r--. 1 oracle docker   39262  4月  5 16:38 mpfr.c
-rw-r--r--. 1 oracle docker   19512  6月 23 13:50 mpfr.o
-rw-r--r--. 1 oracle docker    4130  4月  5 16:37 msg.c
-rw-r--r--. 1 oracle docker   31480  6月 23 13:50 msg.o
-rw-r--r--. 1 oracle docker   24798  4月  5 16:37 node.c
-rw-r--r--. 1 oracle docker   96816  6月 23 13:50 node.o
-rw-r--r--. 1 oracle docker    2988  4月  5 16:38 nonposix.h
drwxr-xr-x. 3 oracle docker    4096  4月 12 18:23 pc
drwxr-xr-x. 2 oracle docker    4096  6月 23 13:48 po
drwxr-xr-x. 2 oracle docker    4096  4月 12 18:25 posix
-rw-r--r--. 1 oracle docker   50514  4月  5 16:38 profile.c
-rw-r--r--. 1 oracle docker  218040  6月 23 13:50 profile.o
-rw-r--r--. 1 oracle docker    4385  4月  5 16:37 protos.h
-rw-r--r--. 1 oracle docker   16272  4月  5 16:38 re.c
-rw-r--r--. 1 oracle docker   70624  6月 23 13:50 re.o
-rw-r--r--. 1 oracle docker    2879  4月  5 16:38 replace.c
-rw-r--r--. 1 oracle docker   18496  6月 23 13:50 replace.o
-rw-r--r--. 1 oracle docker      23  6月 23 13:48 stamp-h1
-rw-r--r--. 1 oracle docker   20166  4月 11 04:06 str_array.c
-rw-r--r--. 1 oracle docker   70824  6月 23 13:50 str_array.o
drwxr-xr-x. 3 oracle docker    4096  6月 23 13:50 support
-rw-r--r--. 1 oracle docker   20703  4月  5 16:38 symbol.c
-rw-r--r--. 1 oracle docker   90808  6月 23 13:50 symbol.o
drwxr-xr-x. 5 oracle docker   36864  6月 23 13:48 test
-rw-r--r--. 1 oracle docker      66  7月 19  2018 version.c
-rw-r--r--. 1 oracle docker    2408  6月 23 13:50 version.o
drwxr-xr-x. 3 oracle docker    4096  4月 12 18:22 vms
-rwxr-xr-x. 1 oracle docker    6858 12月 24 05:01 ylwrap


[oracle@centos gawk-5.0.0]$ make install
Making install in support
make[1]: ディレクトリ `/home/oracle/ff/gawk-5.0.0/support' に入ります
make[2]: ディレクトリ `/home/oracle/ff/gawk-5.0.0/support' に入ります
make[2]: `install-exec-am' に対して行うべき事はありません.
make[2]: `install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ `/home/oracle/ff/gawk-5.0.0/support' から出ます
make[1]: ディレクトリ `/home/oracle/ff/gawk-5.0.0/support' から出ます
Making install in .
make[1]: ディレクトリ `/home/oracle/ff/gawk-5.0.0' に入ります
make[2]: ディレクトリ `/home/oracle/ff/gawk-5.0.0' に入ります
 /usr/bin/mkdir -p '/usr/local/bin'
  ./install-sh -c gawk '/usr/local/bin'
cp: 通常ファイル `/usr/local/bin/_inst.5085_' を作成できません: 許可がありません
make[2]: *** [install-binPROGRAMS] エラー 1
make[2]: ディレクトリ `/home/oracle/ff/gawk-5.0.0' から出ます
make[1]: *** [install-am] エラー 2
make[1]: ディレクトリ `/home/oracle/ff/gawk-5.0.0' から出ます
make: *** [install-recursive] エラー 1


[oracle@centos gawk-5.0.0]$ sudo make install

[oracle@centos gawk-5.0.0]$ which gawk
/usr/local/bin/gawk
[oracle@centos gawk-5.0.0]$ /usr/local/bin/gawk --version
GNU Awk 5.0.0, API: 2.0
Copyright (C) 1989, 1991-2019 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.

[oracle@centos gawk-5.0.0]$ ./gawk --version
GNU Awk 5.0.0, API: 2.0
Copyright (C) 1989, 1991-2019 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.

~/.bashrcぐらいに実行ファイルまでのエイリアス名付けておく

docにしかバージョン文言ないから嫌。あっ、だからシンボリックリンクの概念生まれたのか。。。コピーしてリネームしておけばいいのか!!

コード表示

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

alias unkommit="/usr/local/bin/unkommit.sh"
alias awk="/usr/local/bin/awk"
alias gawk="/usr/local/bin/awk"

[oracle@centos ~]$ cd /usr/local/bin/
[oracle@centos bin]$ ll
合計 20828
lrwxrwxrwx. 1 root root        4  6月 23 13:51 awk -> gawk
-rwxr-xr-x. 1 root root 16154160  5月 12 17:20 docker-compose
-rwxr-xr-x. 2 root root  2583080  6月 23 13:51 gawk
-rwxr-xr-x. 2 root root  2583080  6月 23 13:51 gawk-5.0.0
-rwxr-xr-x. 1 root root       34  4月  5 05:57 sqldeveloper
lrwxrwxrwx. 1 root root       32  6月 22 14:06 unkommit.sh -> /home/oracle/rr/.bin/unkommit.sh
[oracle@centos bin]$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/oracle/.local/bin:/home/oracle/bin
[oracle@centos bin]$ ll
合計 20828
lrwxrwxrwx. 1 root root        4  6月 23 13:51 awk -> gawk
-rwxr-xr-x. 1 root root 16154160  5月 12 17:20 docker-compose
-rwxr-xr-x. 2 root root  2583080  6月 23 13:51 gawk
-rwxr-xr-x. 2 root root  2583080  6月 23 13:51 gawk-5.0.0
-rwxr-xr-x. 1 root root       34  4月  5 05:57 sqldeveloper
lrwxrwxrwx. 1 root root       32  6月 22 14:06 unkommit.sh -> /home/oracle/rr/.bin/unkommit.sh
[oracle@centos bin]$ pwd
/usr/local/bin
[oracle@centos bin]$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/oracle/.local/bin:/home/oracle/bin
[oracle@centos bin]$ pwd
/usr/local/bin
[oracle@centos bin]$ ll
合計 20828
lrwxrwxrwx. 1 root root        4  6月 23 13:51 awk -> gawk
-rwxr-xr-x. 1 root root 16154160  5月 12 17:20 docker-compose
-rwxr-xr-x. 2 root root  2583080  6月 23 13:51 gawk
-rwxr-xr-x. 2 root root  2583080  6月 23 13:51 gawk-5.0.0
-rwxr-xr-x. 1 root root       34  4月  5 05:57 sqldeveloper
lrwxrwxrwx. 1 root root       32  6月 22 14:06 unkommit.sh -> /home/oracle/rr/.bin/unkommit.sh
[oracle@centos bin]$ which awk
alias awk='/usr/local/bin/awk'
	/usr/local/bin/awk
[oracle@centos bin]$ which gawk
alias gawk='/usr/local/bin/awk'
	/usr/local/bin/awk