sed または awk は、行の一部を行の最後までコピーして、行形式を再指定します。

sed または awk は、行の一部を行の最後までコピーして、行形式を再指定します。

SQLITEデータベースにインポートする前に編集したいCSVファイルがあります。数千行ありますが、行の一部をコピーしてパイプ「|」を使用して最後に追加したいと思います。簡単に分離してデータベースにインポートできます。

CSVには次の行が含まれています。

989155126903533568|2018-04-25|14:52:14|GMT|report|"""Умственно отстал"" was checked -  http://steamcommunity.com/profiles/76561198402636850 …"|0|0|0|
989154874184085505|2018-04-25|14:51:14|GMT|report|"""Clavicus Vile"" was checked (8 reports) -  http://steamcommunity.com/profiles/76561198006267103 …"|0|0|0|
989154622890823685|2018-04-25|14:50:14|GMT|report|"""~TAKA~"" was checked (3 reports) -  http://steamcommunity.com/profiles/76561198161608591 …"|0|0|0|

765番号をコピーして、次のように行末に追加したいと思います。

989154622890823685|2018-04-25|14:50:14|GMT|report|"""~TAKA~"" was checked (3 reports) -  http://steamcommunity.com/profiles/76561198161608591 …"|0|0|0|76561198161608591

CSVの各行に対してこれを行いたいと思います。したがって、for ループが必要な場合があります。わかりません。

ベストアンサー1

sed解決策:

sed -E 's/.*\/profiles\/([0-9]+).*/&\1/' file.csv

出力例:

989155126903533568|2018-04-25|14:52:14|GMT|report|"""Умственно отстал"" was checked -  http://steamcommunity.com/profiles/76561198402636850 …"|0|0|0|76561198402636850
989154874184085505|2018-04-25|14:51:14|GMT|report|"""Clavicus Vile"" was checked (8 reports) -  http://steamcommunity.com/profiles/76561198006267103 …"|0|0|0|76561198006267103
989154622890823685|2018-04-25|14:50:14|GMT|report|"""~TAKA~"" was checked (3 reports) -  http://steamcommunity.com/profiles/76561198161608591 …"|0|0|0|76561198161608591

おすすめ記事