以下のようなファイルがあります。
memory=500G
brand=HP
color=black
battery=5 hours
すべての行について、すべてを削除したいと思い=
ます=
。
最終的に、私は次のようなものを取得したい:
memory:brand:color:battery:
(すべての単語の後にコロンを付けて 1 行にまとめる)
使用できる 1 行の sed コマンドはありますか?
以下のようなファイルがあります。
memory=500G
brand=HP
color=black
battery=5 hours
すべての行について、すべてを削除したいと思い=
ます=
。
最終的に、私は次のようなものを取得したい:
memory:brand:color:battery:
(すべての単語の後にコロンを付けて 1 行にまとめる)
使用できる 1 行の sed コマンドはありますか?
sed -e ':a;N;$!ba;s/=.\+\n\?/:/mg' /my/file
この素晴らしい答えから適応。
ただし、率直に言って、次のような方が読みやすいと思います。
cut -d = -f 1 /my/file | tr \\n :
これはあなたのために働くかもしれません(GNU sed):
sed -i ':a;$!N;s/=[^\n]*\n\?/:/;ta' file
使用する1つの方法は次のGNU awk
とおりです。
awk -F= '{ printf "%s:", $1 } END { printf "\n" }' file.txt
結果:
memory:brand:color:battery:
最後の単語の後にコロンが必要ない場合は、次のGNU sed
ように使用できます。
sed -n 's/=.*//; H; $ { g; s/\n//; s/\n/:/g; p }' file.txt
結果:
memory:brand:color:battery
perl -F= -ane '{print $F[0].":"}' your_file
以下でテスト:
> cat temp
abc=def,100,200,dasdas
dasd=dsfsf,2312,123,
adasa=sdffs,1312,1231212,adsdasdasd
qeweqw=das,13123,13,asdadasds
dsadsaa=asdd,12312,123
> perl -F= -ane '{print $F[0].":"}' temp
abc:dasd:adasa:qeweqw:dsadsaa:
私の命令は
最初の一歩:
sed's /([az] +)(\ =。*)/ \ 1:/g'ファイル名|cat> a
猫
メモリー:
ブランド:
色:
バッテリー:
第二段階:
sed -e'N; s / \ n //' a | sed -e'N; s / \ n //'
私の出力は
メモリ:ブランド:色:バッテリー: