Question about text formatting using sed of awk Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election Results Why I closed the “Why is Kali so hard” questionUsing sed/awk to remove anything after first spacesed remove last space only on end of line,combined with awkUsing sed / awk to change words between two patternssed append a text with many lines after matching of multiple strings while the text remains many lines in sed commandRegex: using awk and sed to match websites by IPSelecting text from a file removing unwanted text using shellAWK/SED Remove a specific latex command from the text AND closing bracket behind itAwk to remove extra space after first letter?How to remove n from a column using awk or sedDeleting portion of a text file and following lines using sed

What would be Julian Assange's expected punishment, on the current English criminal law?

Fishing simulator

How can I protect witches in combat who wear limited clothing?

Do working physicists consider Newtonian mechanics to be "falsified"?

Single author papers against my advisor's will?

Is it possible to boil a liquid by just mixing many immiscible liquids together?

Typsetting diagram chases (with TikZ?)

Did the new image of black hole confirm the general theory of relativity?

Determine whether f is a function, an injection, a surjection

How to say that you spent the night with someone, you were only sleeping and nothing else?

3 doors, three guards, one stone

How do you clear the ApexPages.getMessages() collection in a test?

What did Darwin mean by 'squib' here?

What can I do if my MacBook isn’t charging but already ran out?

Can I add database to AWS RDS MySQL without creating new instance?

Is above average number of years spent on PhD considered a red flag in future academia or industry positions?

Statistical model of ligand substitution

What do you call the holes in a flute?

Can a zero nonce be safely used with AES-GCM if the key is random and never used again?

Strange behaviour of Check

Is there a documented rationale why the House Ways and Means chairman can demand tax info?

What computer would be fastest for Mathematica Home Edition?

Blender game recording at the wrong time

Need a suitable toxic chemical for a murder plot in my novel



Question about text formatting using sed of awk



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
2019 Community Moderator Election Results
Why I closed the “Why is Kali so hard” questionUsing sed/awk to remove anything after first spacesed remove last space only on end of line,combined with awkUsing sed / awk to change words between two patternssed append a text with many lines after matching of multiple strings while the text remains many lines in sed commandRegex: using awk and sed to match websites by IPSelecting text from a file removing unwanted text using shellAWK/SED Remove a specific latex command from the text AND closing bracket behind itAwk to remove extra space after first letter?How to remove n from a column using awk or sedDeleting portion of a text file and following lines using sed



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I want to format text using awk or sed.
I have text looking like,



H1 (dxfault)
H337 (Unxr)
H1106 (hast)
H1129 (h1129)
H1370 (hlan1370)


I want to remove the letter H and everything after the first space, and format numbers look like 1,337,1106,1129,1370



I found two different sed options



First:



sed 'y/H/ /' #for removing H letter in front 


Second:



sed 's/s.*$//' #for removing everything after first break "space" 


How can I combine these commands and add a comma after the numbers?










share|improve this question









New contributor




Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.


























    1















    I want to format text using awk or sed.
    I have text looking like,



    H1 (dxfault)
    H337 (Unxr)
    H1106 (hast)
    H1129 (h1129)
    H1370 (hlan1370)


    I want to remove the letter H and everything after the first space, and format numbers look like 1,337,1106,1129,1370



    I found two different sed options



    First:



    sed 'y/H/ /' #for removing H letter in front 


    Second:



    sed 's/s.*$//' #for removing everything after first break "space" 


    How can I combine these commands and add a comma after the numbers?










    share|improve this question









    New contributor




    Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      1












      1








      1


      0






      I want to format text using awk or sed.
      I have text looking like,



      H1 (dxfault)
      H337 (Unxr)
      H1106 (hast)
      H1129 (h1129)
      H1370 (hlan1370)


      I want to remove the letter H and everything after the first space, and format numbers look like 1,337,1106,1129,1370



      I found two different sed options



      First:



      sed 'y/H/ /' #for removing H letter in front 


      Second:



      sed 's/s.*$//' #for removing everything after first break "space" 


      How can I combine these commands and add a comma after the numbers?










      share|improve this question









      New contributor




      Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      I want to format text using awk or sed.
      I have text looking like,



      H1 (dxfault)
      H337 (Unxr)
      H1106 (hast)
      H1129 (h1129)
      H1370 (hlan1370)


      I want to remove the letter H and everything after the first space, and format numbers look like 1,337,1106,1129,1370



      I found two different sed options



      First:



      sed 'y/H/ /' #for removing H letter in front 


      Second:



      sed 's/s.*$//' #for removing everything after first break "space" 


      How can I combine these commands and add a comma after the numbers?







      linux text-processing awk sed text-formatting






      share|improve this question









      New contributor




      Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 17 hours ago









      Jeff Schaller

      45k1164147




      45k1164147






      New contributor




      Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Apr 11 at 7:32









      GiunterGiunter

      62




      62




      New contributor




      Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Giunter is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          5 Answers
          5






          active

          oldest

          votes


















          3














          You can use sed to get the numbers only and paste to merge the lines with , as delimiter:



          sed -E 's/^H([0-9]*).*$/1/' file | paste -sd,


          or grep and paste:



          grep -Po '^HK[0-9]*' file | paste -sd,
          grep -o '^H[0-9]*' file | cut -c 2- | paste -sd,


          You can exchange the linebreak with , with sed, but imo paste is easier.






          share|improve this answer























          • hi.. can you tell me why can't we use or(|) operator sed -E 's/^H|s.*$/1/' also what does 1 and () mean?

            – Goron
            Apr 11 at 8:04











          • You can't use |, because you want to match ^H at the beginning and s.*$ at the end of the line which are two matches (not one or the other). () is used to group the matches and 1 is a backreference to the first group in the replacement. See for example sed -E 's/(^H)(.*)(s.*$)/1:1 2:2 3:3/' file which uses 3 groups and backreferences.

            – Freddy
            Apr 11 at 8:49



















          0














          Or sed/grep using tr:



          $ sed -E 's/H([0-9]+).*/1/' file | tr 'n' ,

          $ grep -o '[0-9]+s' file | tr -s 'n ' ,



          • tr 'n' , replaces newline with comma


          • tr -s 'n ' , replaces newline and space with one comma





          share|improve this answer






























            0














            I have done by below method



            sed -e "s/H//g" -e "s/s.*//g" filename | perl -pne "s/n/,/g"| sed "s/,$//g"


            output



            1,337,1106,1129,1370





            share|improve this answer






























              0














              Tried with Python too



              import subprocess
              import re
              k=re.compile(r's.*')
              u=[]
              f=[]
              l=open('l.txt','r')
              for i in l:
              u.append(re.sub("H","",i).strip())
              for m in u:
              f.append(re.sub(k,"",m))

              print ",".join(f)


              output



              1,337,1106,1129,1370





              share|improve this answer






























                0














                Using sed, assuming that any characters may be used but there is only 1 space ....



                sed -E "s/^H(.+) .*$/1/g" filename | paste -sd,


                I would rather opt for grep though which allows for any characters and extracts the match until the first space found



                grep -Po "(?<=^H)[^ ]*" filename | paste -sd,





                share|improve this answer























                  Your Answer








                  StackExchange.ready(function()
                  var channelOptions =
                  tags: "".split(" "),
                  id: "106"
                  ;
                  initTagRenderer("".split(" "), "".split(" "), channelOptions);

                  StackExchange.using("externalEditor", function()
                  // Have to fire editor after snippets, if snippets enabled
                  if (StackExchange.settings.snippets.snippetsEnabled)
                  StackExchange.using("snippets", function()
                  createEditor();
                  );

                  else
                  createEditor();

                  );

                  function createEditor()
                  StackExchange.prepareEditor(
                  heartbeatType: 'answer',
                  autoActivateHeartbeat: false,
                  convertImagesToLinks: false,
                  noModals: true,
                  showLowRepImageUploadWarning: true,
                  reputationToPostImages: null,
                  bindNavPrevention: true,
                  postfix: "",
                  imageUploader:
                  brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
                  contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
                  allowUrls: true
                  ,
                  onDemand: true,
                  discardSelector: ".discard-answer"
                  ,immediatelyShowMarkdownHelp:true
                  );



                  );






                  Giunter is a new contributor. Be nice, and check out our Code of Conduct.









                  draft saved

                  draft discarded


















                  StackExchange.ready(
                  function ()
                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f511829%2fquestion-about-text-formatting-using-sed-of-awk%23new-answer', 'question_page');

                  );

                  Post as a guest















                  Required, but never shown

























                  5 Answers
                  5






                  active

                  oldest

                  votes








                  5 Answers
                  5






                  active

                  oldest

                  votes









                  active

                  oldest

                  votes






                  active

                  oldest

                  votes









                  3














                  You can use sed to get the numbers only and paste to merge the lines with , as delimiter:



                  sed -E 's/^H([0-9]*).*$/1/' file | paste -sd,


                  or grep and paste:



                  grep -Po '^HK[0-9]*' file | paste -sd,
                  grep -o '^H[0-9]*' file | cut -c 2- | paste -sd,


                  You can exchange the linebreak with , with sed, but imo paste is easier.






                  share|improve this answer























                  • hi.. can you tell me why can't we use or(|) operator sed -E 's/^H|s.*$/1/' also what does 1 and () mean?

                    – Goron
                    Apr 11 at 8:04











                  • You can't use |, because you want to match ^H at the beginning and s.*$ at the end of the line which are two matches (not one or the other). () is used to group the matches and 1 is a backreference to the first group in the replacement. See for example sed -E 's/(^H)(.*)(s.*$)/1:1 2:2 3:3/' file which uses 3 groups and backreferences.

                    – Freddy
                    Apr 11 at 8:49
















                  3














                  You can use sed to get the numbers only and paste to merge the lines with , as delimiter:



                  sed -E 's/^H([0-9]*).*$/1/' file | paste -sd,


                  or grep and paste:



                  grep -Po '^HK[0-9]*' file | paste -sd,
                  grep -o '^H[0-9]*' file | cut -c 2- | paste -sd,


                  You can exchange the linebreak with , with sed, but imo paste is easier.






                  share|improve this answer























                  • hi.. can you tell me why can't we use or(|) operator sed -E 's/^H|s.*$/1/' also what does 1 and () mean?

                    – Goron
                    Apr 11 at 8:04











                  • You can't use |, because you want to match ^H at the beginning and s.*$ at the end of the line which are two matches (not one or the other). () is used to group the matches and 1 is a backreference to the first group in the replacement. See for example sed -E 's/(^H)(.*)(s.*$)/1:1 2:2 3:3/' file which uses 3 groups and backreferences.

                    – Freddy
                    Apr 11 at 8:49














                  3












                  3








                  3







                  You can use sed to get the numbers only and paste to merge the lines with , as delimiter:



                  sed -E 's/^H([0-9]*).*$/1/' file | paste -sd,


                  or grep and paste:



                  grep -Po '^HK[0-9]*' file | paste -sd,
                  grep -o '^H[0-9]*' file | cut -c 2- | paste -sd,


                  You can exchange the linebreak with , with sed, but imo paste is easier.






                  share|improve this answer













                  You can use sed to get the numbers only and paste to merge the lines with , as delimiter:



                  sed -E 's/^H([0-9]*).*$/1/' file | paste -sd,


                  or grep and paste:



                  grep -Po '^HK[0-9]*' file | paste -sd,
                  grep -o '^H[0-9]*' file | cut -c 2- | paste -sd,


                  You can exchange the linebreak with , with sed, but imo paste is easier.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 11 at 7:52









                  RoVoRoVo

                  3,761317




                  3,761317












                  • hi.. can you tell me why can't we use or(|) operator sed -E 's/^H|s.*$/1/' also what does 1 and () mean?

                    – Goron
                    Apr 11 at 8:04











                  • You can't use |, because you want to match ^H at the beginning and s.*$ at the end of the line which are two matches (not one or the other). () is used to group the matches and 1 is a backreference to the first group in the replacement. See for example sed -E 's/(^H)(.*)(s.*$)/1:1 2:2 3:3/' file which uses 3 groups and backreferences.

                    – Freddy
                    Apr 11 at 8:49


















                  • hi.. can you tell me why can't we use or(|) operator sed -E 's/^H|s.*$/1/' also what does 1 and () mean?

                    – Goron
                    Apr 11 at 8:04











                  • You can't use |, because you want to match ^H at the beginning and s.*$ at the end of the line which are two matches (not one or the other). () is used to group the matches and 1 is a backreference to the first group in the replacement. See for example sed -E 's/(^H)(.*)(s.*$)/1:1 2:2 3:3/' file which uses 3 groups and backreferences.

                    – Freddy
                    Apr 11 at 8:49

















                  hi.. can you tell me why can't we use or(|) operator sed -E 's/^H|s.*$/1/' also what does 1 and () mean?

                  – Goron
                  Apr 11 at 8:04





                  hi.. can you tell me why can't we use or(|) operator sed -E 's/^H|s.*$/1/' also what does 1 and () mean?

                  – Goron
                  Apr 11 at 8:04













                  You can't use |, because you want to match ^H at the beginning and s.*$ at the end of the line which are two matches (not one or the other). () is used to group the matches and 1 is a backreference to the first group in the replacement. See for example sed -E 's/(^H)(.*)(s.*$)/1:1 2:2 3:3/' file which uses 3 groups and backreferences.

                  – Freddy
                  Apr 11 at 8:49






                  You can't use |, because you want to match ^H at the beginning and s.*$ at the end of the line which are two matches (not one or the other). () is used to group the matches and 1 is a backreference to the first group in the replacement. See for example sed -E 's/(^H)(.*)(s.*$)/1:1 2:2 3:3/' file which uses 3 groups and backreferences.

                  – Freddy
                  Apr 11 at 8:49














                  0














                  Or sed/grep using tr:



                  $ sed -E 's/H([0-9]+).*/1/' file | tr 'n' ,

                  $ grep -o '[0-9]+s' file | tr -s 'n ' ,



                  • tr 'n' , replaces newline with comma


                  • tr -s 'n ' , replaces newline and space with one comma





                  share|improve this answer



























                    0














                    Or sed/grep using tr:



                    $ sed -E 's/H([0-9]+).*/1/' file | tr 'n' ,

                    $ grep -o '[0-9]+s' file | tr -s 'n ' ,



                    • tr 'n' , replaces newline with comma


                    • tr -s 'n ' , replaces newline and space with one comma





                    share|improve this answer

























                      0












                      0








                      0







                      Or sed/grep using tr:



                      $ sed -E 's/H([0-9]+).*/1/' file | tr 'n' ,

                      $ grep -o '[0-9]+s' file | tr -s 'n ' ,



                      • tr 'n' , replaces newline with comma


                      • tr -s 'n ' , replaces newline and space with one comma





                      share|improve this answer













                      Or sed/grep using tr:



                      $ sed -E 's/H([0-9]+).*/1/' file | tr 'n' ,

                      $ grep -o '[0-9]+s' file | tr -s 'n ' ,



                      • tr 'n' , replaces newline with comma


                      • tr -s 'n ' , replaces newline and space with one comma






                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Apr 11 at 8:32









                      FreddyFreddy

                      1,859210




                      1,859210





















                          0














                          I have done by below method



                          sed -e "s/H//g" -e "s/s.*//g" filename | perl -pne "s/n/,/g"| sed "s/,$//g"


                          output



                          1,337,1106,1129,1370





                          share|improve this answer



























                            0














                            I have done by below method



                            sed -e "s/H//g" -e "s/s.*//g" filename | perl -pne "s/n/,/g"| sed "s/,$//g"


                            output



                            1,337,1106,1129,1370





                            share|improve this answer

























                              0












                              0








                              0







                              I have done by below method



                              sed -e "s/H//g" -e "s/s.*//g" filename | perl -pne "s/n/,/g"| sed "s/,$//g"


                              output



                              1,337,1106,1129,1370





                              share|improve this answer













                              I have done by below method



                              sed -e "s/H//g" -e "s/s.*//g" filename | perl -pne "s/n/,/g"| sed "s/,$//g"


                              output



                              1,337,1106,1129,1370






                              share|improve this answer












                              share|improve this answer



                              share|improve this answer










                              answered yesterday









                              Praveen Kumar BSPraveen Kumar BS

                              1,7751311




                              1,7751311





















                                  0














                                  Tried with Python too



                                  import subprocess
                                  import re
                                  k=re.compile(r's.*')
                                  u=[]
                                  f=[]
                                  l=open('l.txt','r')
                                  for i in l:
                                  u.append(re.sub("H","",i).strip())
                                  for m in u:
                                  f.append(re.sub(k,"",m))

                                  print ",".join(f)


                                  output



                                  1,337,1106,1129,1370





                                  share|improve this answer



























                                    0














                                    Tried with Python too



                                    import subprocess
                                    import re
                                    k=re.compile(r's.*')
                                    u=[]
                                    f=[]
                                    l=open('l.txt','r')
                                    for i in l:
                                    u.append(re.sub("H","",i).strip())
                                    for m in u:
                                    f.append(re.sub(k,"",m))

                                    print ",".join(f)


                                    output



                                    1,337,1106,1129,1370





                                    share|improve this answer

























                                      0












                                      0








                                      0







                                      Tried with Python too



                                      import subprocess
                                      import re
                                      k=re.compile(r's.*')
                                      u=[]
                                      f=[]
                                      l=open('l.txt','r')
                                      for i in l:
                                      u.append(re.sub("H","",i).strip())
                                      for m in u:
                                      f.append(re.sub(k,"",m))

                                      print ",".join(f)


                                      output



                                      1,337,1106,1129,1370





                                      share|improve this answer













                                      Tried with Python too



                                      import subprocess
                                      import re
                                      k=re.compile(r's.*')
                                      u=[]
                                      f=[]
                                      l=open('l.txt','r')
                                      for i in l:
                                      u.append(re.sub("H","",i).strip())
                                      for m in u:
                                      f.append(re.sub(k,"",m))

                                      print ",".join(f)


                                      output



                                      1,337,1106,1129,1370






                                      share|improve this answer












                                      share|improve this answer



                                      share|improve this answer










                                      answered yesterday









                                      Praveen Kumar BSPraveen Kumar BS

                                      1,7751311




                                      1,7751311





















                                          0














                                          Using sed, assuming that any characters may be used but there is only 1 space ....



                                          sed -E "s/^H(.+) .*$/1/g" filename | paste -sd,


                                          I would rather opt for grep though which allows for any characters and extracts the match until the first space found



                                          grep -Po "(?<=^H)[^ ]*" filename | paste -sd,





                                          share|improve this answer



























                                            0














                                            Using sed, assuming that any characters may be used but there is only 1 space ....



                                            sed -E "s/^H(.+) .*$/1/g" filename | paste -sd,


                                            I would rather opt for grep though which allows for any characters and extracts the match until the first space found



                                            grep -Po "(?<=^H)[^ ]*" filename | paste -sd,





                                            share|improve this answer

























                                              0












                                              0








                                              0







                                              Using sed, assuming that any characters may be used but there is only 1 space ....



                                              sed -E "s/^H(.+) .*$/1/g" filename | paste -sd,


                                              I would rather opt for grep though which allows for any characters and extracts the match until the first space found



                                              grep -Po "(?<=^H)[^ ]*" filename | paste -sd,





                                              share|improve this answer













                                              Using sed, assuming that any characters may be used but there is only 1 space ....



                                              sed -E "s/^H(.+) .*$/1/g" filename | paste -sd,


                                              I would rather opt for grep though which allows for any characters and extracts the match until the first space found



                                              grep -Po "(?<=^H)[^ ]*" filename | paste -sd,






                                              share|improve this answer












                                              share|improve this answer



                                              share|improve this answer










                                              answered yesterday









                                              bu5hmanbu5hman

                                              1,356415




                                              1,356415




















                                                  Giunter is a new contributor. Be nice, and check out our Code of Conduct.









                                                  draft saved

                                                  draft discarded


















                                                  Giunter is a new contributor. Be nice, and check out our Code of Conduct.












                                                  Giunter is a new contributor. Be nice, and check out our Code of Conduct.











                                                  Giunter is a new contributor. Be nice, and check out our Code of Conduct.














                                                  Thanks for contributing an answer to Unix & Linux Stack Exchange!


                                                  • Please be sure to answer the question. Provide details and share your research!

                                                  But avoid


                                                  • Asking for help, clarification, or responding to other answers.

                                                  • Making statements based on opinion; back them up with references or personal experience.

                                                  To learn more, see our tips on writing great answers.




                                                  draft saved


                                                  draft discarded














                                                  StackExchange.ready(
                                                  function ()
                                                  StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f511829%2fquestion-about-text-formatting-using-sed-of-awk%23new-answer', 'question_page');

                                                  );

                                                  Post as a guest















                                                  Required, but never shown





















































                                                  Required, but never shown














                                                  Required, but never shown












                                                  Required, but never shown







                                                  Required, but never shown

































                                                  Required, but never shown














                                                  Required, but never shown












                                                  Required, but never shown







                                                  Required, but never shown







                                                  -awk, linux, sed, text-formatting, text-processing

                                                  Popular posts from this blog

                                                  Frič See also Navigation menuinternal link

                                                  Identify plant with long narrow paired leaves and reddish stems Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?What is this plant with long sharp leaves? Is it a weed?What is this 3ft high, stalky plant, with mid sized narrow leaves?What is this young shrub with opposite ovate, crenate leaves and reddish stems?What is this plant with large broad serrated leaves?Identify this upright branching weed with long leaves and reddish stemsPlease help me identify this bulbous plant with long, broad leaves and white flowersWhat is this small annual with narrow gray/green leaves and rust colored daisy-type flowers?What is this chilli plant?Does anyone know what type of chilli plant this is?Help identify this plant

                                                  fontconfig warning: “/etc/fonts/fonts.conf”, line 100: unknown “element blank” The 2019 Stack Overflow Developer Survey Results Are In“tar: unrecognized option --warning” during 'apt-get install'How to fix Fontconfig errorHow do I figure out which font file is chosen for a system generic font alias?Why are some apt-get-installed fonts being ignored by fc-list, xfontsel, etc?Reload settings in /etc/fonts/conf.dTaking 30 seconds longer to boot after upgrade from jessie to stretchHow to match multiple font names with a single <match> element?Adding a custom font to fontconfigRemoving fonts from fontconfig <match> resultsBroken fonts after upgrading Firefox ESR to latest Firefox