テキストリストをカンマ区切りの6つのテキストグループにリンクする

テキストリストをカンマ区切りの6つのテキストグループにリンクする

私は多数のエントリを含むtest.txtファイルを持っています。以下はその例です。

Afghanistan
Albania
Algeria
Andorra
Angola
Antigua and Barbuda
Argentina
Armenia
Australia
Austria
Azerbaijan
The Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bhutan
Bolivia
Bosnia and Herzegovina
Botswana
Brazil
Brunei
Bulgaria
Burkina Faso
Burundi
Cabo Verde
Cambodia
Cameroon
Canada
Central African Republic
Chad
Chile
China
Colombia
Comoros

cat test.txt | tr '\n' ','新しい行をカンマ区切りリストに変換するために使用できます。

ただし、以下に示すように、それぞれ6つのセットで別々のリストを作成するコマンドが必要です。

Afghanistan,Albania,Algeria,Andorra,Angola,Antigua and Barbuda
Argentina,Armenia,Australia,Austria,Azerbaijan,The Bahamas
Bahrain,Bangladesh,Barbados,Belarus,Belgium,Belize
and so on ...

Centos bashシェルでこれを行うにはどうすればよいですか?

ベストアンサー1

$ paste -d, - - - - - - <file
Afghanistan,Albania,Algeria,Andorra,Angola,Antigua and Barbuda
Argentina,Armenia,Australia,Austria,Azerbaijan,The Bahamas
Bahrain,Bangladesh,Barbados,Belarus,Belgium,Belize
Benin,Bhutan,Bolivia,Bosnia and Herzegovina,Botswana,Brazil
Brunei,Bulgaria,Burkina Faso,Burundi,Cabo Verde,Cambodia
Cameroon,Canada,Central African Republic,Chad,Chile,China
Colombia,Comoros,,,,

ここで、コマンドpasteはコンマで区切られた出力の6つの列を生成するために使用されます。

この例では、最後の行の最後の数列を埋めるのに十分なデータがないため、列は空です。これを削除するには、sed '$s/,*$//'最後の行のすべての末尾のコンマが削除される結果をパイプします。

$ paste -d, - - - - - - <file | sed '$s/,*$//'
Afghanistan,Albania,Algeria,Andorra,Angola,Antigua and Barbuda
Argentina,Armenia,Australia,Austria,Azerbaijan,The Bahamas
Bahrain,Bangladesh,Barbados,Belarus,Belgium,Belize
Benin,Bhutan,Bolivia,Bosnia and Herzegovina,Botswana,Brazil
Brunei,Bulgaria,Burkina Faso,Burundi,Cabo Verde,Cambodia
Cameroon,Canada,Central African Republic,Chad,Chile,China
Colombia,Comoros

おすすめ記事