0

次の行を含む example.txt というテキスト ファイルがあります。

email1:location1
email2:location2
email3:location3

次のように変更したいと思います。

location1:email1 
location2:email2 
location3:email3 

これを行う最も簡単な方法は何ですか?いくつかの awk コマンドを試しましたが、それらを機能させることができませんでした。私がこれまでに読んだことから、カットでは不可能です。
Windows で Ubuntu または GNUwin32 を使用しています。

4

2 に答える 2

3

単に

awk -F : 'BEGIN { OFS = FS } { print $2, $1 }' filename

ここでの唯一の秘訣は、出力フィールドセパレーターOFSをフィールドセパレーターFS( に-F :設定:) に設定する必要があるため、出力でも入力と同じ方法でフィールドが分​​離されることです。$2行の 2 番目のフィールドを参照し$1、最初のフィールドを参照します。

また可能:

awk -F : '{ print $2 ":" $1 }' filename

...別のセパレーターで使用するには、2 つの場所で呼び出しを変更する必要があります。

于 2015-02-01T19:17:23.347 に答える
1

これが1つですawk

awk -F: '$0=$2":"$1' file
location1:email1
location2:email2
location3:email3

-F:フィールドの前にフィールド:
$0=$2":"$1を使用して行を再構築するようにフィールドセパレーターを設定します 。これは常に真であるため、デフォルトのアクションである行を印刷します。21

于 2015-02-01T19:24:27.957 に答える