web-dev-qa-db-ja.com

テキストファイルから行の2番目の単語を抽出する

現在、テキストファイルの2番目の単語(CRISTOBAL)を1行に抽出する必要があります。

                 *   CRISTOBAL  AL042014  08/05/14  12  UTC   *

「CRISTOBAL」の行の2番目の単語は日によって異なるため、行から2番目の単語/文字だけを抽出する方法を見つける必要があります。

13
Aaron Perry

2番目の単語

echo '*   CRISTOBAL  AL042014  08/05/14  12  UTC   *' | awk  '{print $2}'

CRISTOBAL

echo 'testing only' | awk  '{print $2}'

only

行の構造が変更された場合は、これを変更する必要がある場合があります。

テキストファイルの行から2番目の単語

テキストファイルに次の2つの文が含まれている場合

this is a test
*   CRISTOBAL  AL042014  08/05/14  12  UTC   *

ランニング awk '{print $2}' filename.txt 戻ります

is
CRISTOBAL

2番目の文字

echo 'testing only' | cut -c 2

これにより、2番目の文字であるeが得られます。必要に応じて、これを変更する必要がある場合もあります。

27
zedfoxus

Sedが必要な場合/のみ利用可能

sed '^ *[^ ]* *\([^ ]*\) .*/\1/' YourFile

空白でない2番目のグループを取得します(Wordの後に少なくとも1つの空白があると仮定します)

しかし、私はスピードよりもカットを好みます(マニピュレーションが必要な場合はawkを使用します)。

実際、それは主にスクリプト内の次のアクション(存在する場合)に依存します。

1
NeronLeVelu