テキストファイルにサブドメインがないドメインのリストがあります。 TLDとSLDを削除する必要があります。
入力する
google.uk
example.com
amazon.co.uk
domain.ca.uk
education.edu.it
予想出力:
google
example
amazon
domain
education
答え1
これにはawkやsedは必要ありません。これがcut
存在します。
$ cut -d'.' -f1 file
google
example
amazon
domain
education
答え2
私は私の質問に対する答えを見つけました。とても簡単であることがわかりました
awk -F. '{print $1}' input_file
私は使用する」。 '-F' を区切り文字として使用します。このように、SLDとTLDを$ 2および/または$ 3列に入れました。
「{print $1}」を使用すると、最初の列のテキストのみが印刷され、これが必要な出力です。
答え3
sed "s/\..*//" filename
google
example
amazon
domain
education
\.
最初のテキストポイントとそれ以降のすべての項目と一致します.*
。何も置き換えられないため、s
最初のポイントから始まるすべてのアイテムが削除されます。
答え4
使用幸せ(以前のPerl_6)
~$ raku -ne 'put .split(".")[0];' input_file
awk
おそらくRakuソリューションが役に立ちます。上記は、Raku(およびPerl)がゼロインデックスであることを除いて、コードをかなり同様に翻訳したものです。 Rakuの-ne
「非自動印刷ライン」コマンドラインフラグを使用してください(よりsed
類似した動作のためには、Rakuの-pe
コマンドラインフラグを使用してください)。
RakuはPerlよりも少ないコマンドラインスイッチを提供するので、言語でより多くの作業を行うことができます(コード移植性の向上)。これは、結果文字列からsplit
破壊的に削除するために使用されるフィールド区切り文字を定義します。.
その後、[0]
インデックスが0の最初の要素はput
(put
最後に改行文字を追加する「print-using-terminator」の略)です。
入力例:
google.uk
example.com
amazon.co.uk
domain.ca.uk
education.edu.it
出力例:
google
example
amazon
domain
education