私は以下を持っていますNフラットファイルの行数:
uk,1234560000
uk,6789067000
uk,4567890000
.
.
.
n lines
これで、次の形式で作成する必要があります。
uk,1234560000-1234560000,6789067000-6789067000,4567890000-4567890000,......
どのように切り替えることができますか?
ベストアンサー1
これを行う方法はいくつかあります。以下はシェルのみを使用することです(外部プログラムなし)。
#!/bin/sh
IFS=, read -r f1 f2
printf "%s,%s-%s" "$f1" "$f2" "$f2"
while IFS=, read -r f1 f2
do
printf ",%s-%s" "$f2" "$f2"
done
printf "\n"
myscript.sh
上記の内容をdochmod +x myscript.sh
とrunというファイルに入れ、./myscript.sh
入力と出力が必要な場所にリダイレクトされます。
コードはとても簡単です
- で区切られた2つのフィールドを読み取ります
,
。 field1,
field2-
field2 書き込み ,いいえ改行文字で終了します。 - ファイルの終わりではありませんが、2 つのフィールドを読み込み、2 番目のフィールドを
,
2 回書き、前に a を置いて,
、 a で区切り-
、改行文字で終わりません。 - ファイル全体を読み取った後(ファイルの終わりに到達)、改行文字を書き込みます。