逆引きUNIXコマンド/複数スペースで区切られている文字列を抜き出す
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* 複数のスペースで区切られている文字列を抜き出す方法 [#u1...
本記事は、cut,awkコマンドで複数のスペースで区切られた特定...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#r19615a2]
-[[特定のカラムを削除し表示する・awkコマンド>逆引きシェル...
-[[特定のカラムを削除し表示する・awkコマンド>逆引きシェル...
-[[awkコマンドの区切り文字をカンマに変更>逆引きシェルスク...
-[[awkの出力をカンマ区切りにする方法>逆引きシェルスクリプ...
-[[指定したフィールドを取り出す・cut>逆引きUNIXコマンド/...
-[[複数スペースが区切りとなっているファイルをCSVに変換す...
* 使用するテキストデータ(スペースインデント) [#j67bf20f]
以下のようなスペースインデントされたテキストファイルを使...
#ref(sp.txt)
redhat centos fedora
debian ubuntu mint
windows10 windows8.1 windows7
freebsd netbsd openbsd
hp-ux solaris aix
* awkを使って特定位置の文字列を抜き出す [#af6f8f4a]
awkの場合は、スペースが続いていても気にする必要はありませ...
以下のコマンド例は2番目の文字列を抜き取ることができます。
cat sp.txt | awk '{ print $2 }'
centos
ubuntu
windows8.1
netbsd
solaris
print $2 の $2を$1にすれば1番目の文字列を抽出します。~
$3にすれば3番目の文字列を抽出することができます。~
順番を逆にするのであれば、以下のようにすれば実現できます。
$ cat sp.txt | awk '{ print $3" "$2" "$1 }'
fedora centos redhat
mint ubuntu debian
windows7 windows8.1 windows10
openbsd netbsd freebsd
aix solaris hp-ux
* cutを使って特定位置の文字列を抜き出す [#vdc0362a]
文字列と文字列の区切りにスペースが複数あるので、連続する...
trコマンドを使用します。~
trの-sオプションを使い、複数スペースを一つのスペースに変...
その後、cutコマンドで区切り文字にスペースを指定し2番目の...
$ cat sp.txt | tr -s ' ' ' ' | cut -d" " -f 2
centos
ubuntu
windows8.1
netbsd
solaris
trの-sオプションがわかりづらいと思いますので、以下のよう...
trの-sオプションを使って、複数スペースを,に置換してみます。
-tr -s コマンドで連続するスペースをカンマに置換します。
cat sp.txt | tr -s ' ' ,
redhat,centos,fedora
debian,ubuntu,mint
windows10,windows8.1,windows7
freebsd,netbsd,openbsd
hp-ux,solaris,aix
#br
-cutコマンドで区切り文字にカンマを指定し3番目の文字列(フ...
cat sp.txt | tr -s ' ' , | cut -d , -f 3
fedora
mint
windows7
openbsd
aix
上記の通り、trとcutを組み合わせることにより、連続するスペ...
カンマに置換し、cutコマンドにより指定した位置(フィールド)...
* tabの場合 [#r909e44f]
#ref(tab.txt)
redhat centos fedora
debian ubuntu mint
windows10 windows8.1 windows7
freebsd netbsd openbsd
hp-ux solaris aix
tabの場合は、以下のようにすればcutで実現できます。~
awkの場合は、スペースもタブの同じ動作になります。
$ cat tab.txt | tr -s '\t' ','
redhat,centos,fedora
debian,ubuntu,mint
windows10,windows8.1,windows7
freebsd,netbsd,openbsd
hp-ux,solaris,aix
$ cat tab.txt | tr -s '\t' ',' | cut -d, -f2
centos
ubuntu
windows8.1
netbsd
solaris
* スペースとtabの混在 [#odb216e4]
スペースとtabの混在は以下のようにして連続するスペースまた...
以下の例ではカンマに置換しています。
$ cat sptab.txt | tr -s '\t' ' ' | tr -s ' ' ','
redhat,centos,fedora
debian,ubuntu,mint
windows10,windows8.1,windows7
freebsd,netbsd,openbsd
hp-ux,solaris,aix
上記のような出力になれば、あとは、上述のようにcutを使えば...
ちなみにawkの場合、スペースとtabが混在していても、以下の...
cat sptab.txt | awk '{ print $2 }'
centos
ubuntu
windows8.1
netbsd
solaris
以上、awkとcutコマンドを使用し複数のスペースで区切られて...
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
終了行:
#navi(../)
* 複数のスペースで区切られている文字列を抜き出す方法 [#u1...
本記事は、cut,awkコマンドで複数のスペースで区切られた特定...
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#r19615a2]
-[[特定のカラムを削除し表示する・awkコマンド>逆引きシェル...
-[[特定のカラムを削除し表示する・awkコマンド>逆引きシェル...
-[[awkコマンドの区切り文字をカンマに変更>逆引きシェルスク...
-[[awkの出力をカンマ区切りにする方法>逆引きシェルスクリプ...
-[[指定したフィールドを取り出す・cut>逆引きUNIXコマンド/...
-[[複数スペースが区切りとなっているファイルをCSVに変換す...
* 使用するテキストデータ(スペースインデント) [#j67bf20f]
以下のようなスペースインデントされたテキストファイルを使...
#ref(sp.txt)
redhat centos fedora
debian ubuntu mint
windows10 windows8.1 windows7
freebsd netbsd openbsd
hp-ux solaris aix
* awkを使って特定位置の文字列を抜き出す [#af6f8f4a]
awkの場合は、スペースが続いていても気にする必要はありませ...
以下のコマンド例は2番目の文字列を抜き取ることができます。
cat sp.txt | awk '{ print $2 }'
centos
ubuntu
windows8.1
netbsd
solaris
print $2 の $2を$1にすれば1番目の文字列を抽出します。~
$3にすれば3番目の文字列を抽出することができます。~
順番を逆にするのであれば、以下のようにすれば実現できます。
$ cat sp.txt | awk '{ print $3" "$2" "$1 }'
fedora centos redhat
mint ubuntu debian
windows7 windows8.1 windows10
openbsd netbsd freebsd
aix solaris hp-ux
* cutを使って特定位置の文字列を抜き出す [#vdc0362a]
文字列と文字列の区切りにスペースが複数あるので、連続する...
trコマンドを使用します。~
trの-sオプションを使い、複数スペースを一つのスペースに変...
その後、cutコマンドで区切り文字にスペースを指定し2番目の...
$ cat sp.txt | tr -s ' ' ' ' | cut -d" " -f 2
centos
ubuntu
windows8.1
netbsd
solaris
trの-sオプションがわかりづらいと思いますので、以下のよう...
trの-sオプションを使って、複数スペースを,に置換してみます。
-tr -s コマンドで連続するスペースをカンマに置換します。
cat sp.txt | tr -s ' ' ,
redhat,centos,fedora
debian,ubuntu,mint
windows10,windows8.1,windows7
freebsd,netbsd,openbsd
hp-ux,solaris,aix
#br
-cutコマンドで区切り文字にカンマを指定し3番目の文字列(フ...
cat sp.txt | tr -s ' ' , | cut -d , -f 3
fedora
mint
windows7
openbsd
aix
上記の通り、trとcutを組み合わせることにより、連続するスペ...
カンマに置換し、cutコマンドにより指定した位置(フィールド)...
* tabの場合 [#r909e44f]
#ref(tab.txt)
redhat centos fedora
debian ubuntu mint
windows10 windows8.1 windows7
freebsd netbsd openbsd
hp-ux solaris aix
tabの場合は、以下のようにすればcutで実現できます。~
awkの場合は、スペースもタブの同じ動作になります。
$ cat tab.txt | tr -s '\t' ','
redhat,centos,fedora
debian,ubuntu,mint
windows10,windows8.1,windows7
freebsd,netbsd,openbsd
hp-ux,solaris,aix
$ cat tab.txt | tr -s '\t' ',' | cut -d, -f2
centos
ubuntu
windows8.1
netbsd
solaris
* スペースとtabの混在 [#odb216e4]
スペースとtabの混在は以下のようにして連続するスペースまた...
以下の例ではカンマに置換しています。
$ cat sptab.txt | tr -s '\t' ' ' | tr -s ' ' ','
redhat,centos,fedora
debian,ubuntu,mint
windows10,windows8.1,windows7
freebsd,netbsd,openbsd
hp-ux,solaris,aix
上記のような出力になれば、あとは、上述のようにcutを使えば...
ちなみにawkの場合、スペースとtabが混在していても、以下の...
cat sptab.txt | awk '{ print $2 }'
centos
ubuntu
windows8.1
netbsd
solaris
以上、awkとcutコマンドを使用し複数のスペースで区切られて...
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
ページ名: