ബാഷ്: വാചകത്തിന്റെ ഒരു നിര വരിയായി പരിവർത്തനം ചെയ്യുക

ഞങ്ങൾക്ക് ഒരു ടെക്സ്റ്റ് ഫയൽ ഉണ്ടെന്ന് കരുതുക distros.txt ഇനിപ്പറയുന്നവയ്‌ക്കൊപ്പം:

archlinux
debian
ഉബുണ്ടു
കുഴപ്പം
ഫെഡോറ
സ്ലാക്ക്വെയർ
ജെന്റൂ

ഞങ്ങൾ ഇത് ഇതിലേക്ക് മാറ്റാൻ ആഗ്രഹിക്കുന്നു:

archlinux debian ubuntu kaos fedora സ്ലാക്ക്വെയർ ജെന്റൂ

ഇത് നേടാൻ ഞങ്ങൾ ഒരു ഉപയോഗിക്കും ലൂപ്പിനായി ഒപ്പം ഒരു പ്രതിധ്വനി -n :

for i in `< distros.txt`; do echo -n ${i}" ";done; echo ""

ചെയ്തു, ഇത് ട്രിക്ക് ചെയ്യുന്നു

ടെർമിനലിൽ ആവശ്യമുള്ള ഫലം ഇത് കാണിക്കും, മറുവശത്ത് ഇത് മറ്റൊരു .txt ഫയലിൽ സംരക്ഷിക്കണമെന്ന് ഞങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ ഞങ്ങൾ output ട്ട്‌പുട്ട് റീഡയറക്‌ടുചെയ്യുന്നു:

for i in `< distros.txt`; do echo -n ${i}" ";done; echo "" > distros-nuevas.txt

ഒപ്പം വോയില

ഒന്നുമില്ല, നിങ്ങൾ ഇത് ഉപയോഗപ്രദമാണെന്ന് കരുതുന്നു. പതിവ് എക്‌സ്‌പ്രഷനുകളിലൂടെയും ഇത് ചെയ്യാൻ കഴിയുമെന്ന് വ്യക്തമാക്കുന്നതിന് സാധുതയുണ്ട്, എങ്ങനെയെന്ന് എനിക്കറിയില്ല ... പക്ഷേ, പതിവ് എക്‌സ്‌പ്രഷനുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് മിക്കവാറും എല്ലാം ചെയ്യാൻ കഴിയും hahaha.


ലേഖനത്തിന്റെ ഉള്ളടക്കം ഞങ്ങളുടെ തത്ത്വങ്ങൾ പാലിക്കുന്നു എഡിറ്റോറിയൽ എത്തിക്സ്. ഒരു പിശക് റിപ്പോർട്ടുചെയ്യാൻ ക്ലിക്കുചെയ്യുക ഇവിടെ.

15 അഭിപ്രായങ്ങൾ, നിങ്ങളുടേത് വിടുക

നിങ്ങളുടെ അഭിപ്രായം ഇടുക

നിങ്ങളുടെ ഇമെയിൽ വിലാസം പ്രസിദ്ധീകരിച്ചു ചെയ്യില്ല.

*

*

  1. ഡാറ്റയുടെ ഉത്തരവാദിത്തം: മിഗുവൽ ഏഞ്ചൽ ഗാറ്റൻ
  2. ഡാറ്റയുടെ ഉദ്ദേശ്യം: സ്പാം നിയന്ത്രിക്കുക, അഭിപ്രായ മാനേജുമെന്റ്.
  3. നിയമസാധുത: നിങ്ങളുടെ സമ്മതം
  4. ഡാറ്റയുടെ ആശയവിനിമയം: നിയമപരമായ ബാധ്യതയല്ലാതെ ഡാറ്റ മൂന്നാം കക്ഷികളുമായി ആശയവിനിമയം നടത്തുകയില്ല.
  5. ഡാറ്റ സംഭരണം: ഒസെന്റസ് നെറ്റ്‌വർക്കുകൾ (ഇയു) ഹോസ്റ്റുചെയ്യുന്ന ഡാറ്റാബേസ്
  6. അവകാശങ്ങൾ: ഏത് സമയത്തും നിങ്ങളുടെ വിവരങ്ങൾ പരിമിതപ്പെടുത്താനും വീണ്ടെടുക്കാനും ഇല്ലാതാക്കാനും കഴിയും.

  1.   ജോസ് റിക്കാർഡോ പറഞ്ഞു

    വളരെ എളുപ്പം:

    പൂച്ച distros.txt | xargs -n 100

  2.   ¿ പറഞ്ഞു

    ഒരു .odt ൽ എനിക്ക് ഓരോ പേജിലും 2 നിരകളുണ്ടെങ്കിൽ, അവ ഇതുപോലെ വായിക്കുന്നു:

    പേജ് 1
    col.1 col.2
    പേജ് 2
    col.3 col.4
    തുടങ്ങിയവ.

    ഓരോ നിരയും മറ്റൊന്നിനടിയിൽ എങ്ങനെ ലഭിക്കും?
    നിര 1
    നിര 2
    നിര 3
    നിര 4
    തുടങ്ങിയവ.

  3.   ജുവന്റ് പറഞ്ഞു

    വളരെ എളുപ്പമാണ്:

    ഇത് ടാബുകളാൽ വേർതിരിക്കണമെങ്കിൽ:
    നിങ്ങൾ എഴുതുന്നു: പേസ്റ്റ് -s distros.txt
    നിങ്ങൾക്ക് ലഭിക്കും: archlinux debian ubuntu kaos fedora സ്ലാക്ക്വെയർ ജെന്റൂ

    നിങ്ങൾ‌ക്കത് സ്പെയ്സുകൾ‌ ഉപയോഗിച്ച് വേർ‌തിരിക്കണമെങ്കിൽ‌:
    നിങ്ങൾ എഴുതുന്നു: -s -d »» distros.txt ഒട്ടിക്കുക
    നിങ്ങൾക്ക് ലഭിക്കും: archlinux debian ubuntu kaos fedora സ്ലാക്ക്വെയർ ജെന്റൂ

    ഇത് കോമകളാൽ വേർതിരിക്കണമെങ്കിൽ:
    നിങ്ങൾ എഴുതുന്നു: പേസ്റ്റ് -s -d, distros.txt
    നിങ്ങൾക്ക് ലഭിക്കുന്നത്: ആർച്ച്ലിനക്സ്, ഡെബിയൻ, ഉബുണ്ടു, കാവോസ്, ഫെഡോറ, സ്ലാക്ക്വെയർ, ജെന്റൂ

    പേസ്റ്റ്, പൂച്ച, അവ്ക്ക്, മറ്റ് ചങ്ങാതിമാർ എന്നിവരോടൊപ്പം, അല്പം ചാതുര്യം ഉപയോഗിച്ച് നിങ്ങളുടെ ജീവിതം സങ്കീർണ്ണമാക്കാതെ നിങ്ങൾക്ക് ഉപയോഗപ്രദമായ നിരവധി കോമ്പിനേഷനുകൾ നടത്താൻ കഴിയും.

    എല്ലാം മികച്ച രീതിയിൽ തുടരട്ടെ, പോർട്ടൽ പ്രോഗ്രാം പ്രോഗ്രാമിലെ അവാർഡിന് അഭിനന്ദനങ്ങൾ!

    1.    ദുണ്ടർ പറഞ്ഞു

      ചുരുക്കത്തിൽ ഞാൻ sed, awk, cut, sort, uniq, ക്രീം ഉപയോഗിക്കുന്നു, പക്ഷേ ഒട്ടിക്കാൻ ഞാൻ ഒരിക്കലും ശ്രദ്ധിച്ചിരുന്നില്ല, അതിന് എന്ത് ചെയ്യാനാകുമെന്ന് കാണിച്ചതിന് നന്ദി. Slds.

  4.   ടാബ്രിസ് പറഞ്ഞു

    cat file.txt | xargs

    ലാഭം.

  5.   ക്രിസ്റ്റ്യൻഎച്ച്സിഡി പറഞ്ഞു

    ഞാൻ എല്ലായ്പ്പോഴും ഈ [ട്രാൻസ്പോസ്] നായി എക്സൽ ഉപയോഗിക്കുന്നു ... വളരെ ഉപയോഗപ്രദമാണ്

  6.   ബ്രൂണോ കാസിയോ പറഞ്ഞു

    മറ്റൊരു വകഭേദം:

    പൂച്ച distros.txt | tr «\ n» »«

  7.   ജോക്വിൻ പറഞ്ഞു

    ഓരോ അഭിപ്രായത്തിലും HaHaHa, ഇത് ചെയ്യുന്നതിന് മറ്റൊരു രീതി!

  8.   ജോസ് ജിഡിഎഫ് പറഞ്ഞു

    നേരെമറിച്ച് ചെയ്യാൻ, അത് എങ്ങനെയായിരിക്കും? അതായത്, സ്‌പെയ്‌സുകളാൽ വേർതിരിച്ച പദങ്ങളുടെ ഒരു നിരയെ ഒരു നിരയായി പരിവർത്തനം ചെയ്യുന്നു.

    1.    ജുവന്റ് പറഞ്ഞു

      വളരെ എളുപ്പമാണ്, ഈ സമയം അവ്യക്തമായി.
      ഫീൽഡുകൾ ടാബുകളോ സ്‌പെയ്‌സുകളോ ഉപയോഗിച്ച് വേർതിരിച്ചിരിക്കുന്നുവെന്ന് കരുതുക, അത് ഏറ്റവും സാധാരണമാണ് (അത് കോമകളോ മറ്റെന്തെങ്കിലുമോ ആണെങ്കിൽ, അത് കണക്കിലെടുക്കുകയും സൂചിപ്പിക്കുകയും വേണം), കൂടാതെ ഫയലിൽ ഇപ്പോൾ അടങ്ങിയിരിക്കുന്നു: archlinux debian ubuntu kaos fedora slackware entoo

      നമുക്ക് ആവശ്യമുള്ള ഫീൽഡ് awk നേരിട്ട് നൽകുന്നതിനാൽ, അവസാനം വരെ ഇത് ഓരോന്നായി കാണിക്കാൻ ഞങ്ങൾ ശ്രമിക്കണം. 7 ഫീൽഡുകൾ ഉണ്ട്, കാരണം ഇത് എൻ‌എഫിന്റെ മൂല്യം (ഫീൽ‌ഡുകളുടെ എണ്ണം). ഞങ്ങൾ ക = ണ്ടർ i = 1 സജ്ജമാക്കി, അതുവഴി ആദ്യത്തെ ഫീൽഡ് ($ 1) കാണിക്കുകയും അവസാന ഫീൽഡ് (എൻ‌എഫ്) കവിയാതെ ഒരു യൂണിറ്റ് (i ++ ഉപയോഗിച്ച്) വർദ്ധിപ്പിക്കുകയും വേണം.

      awk '{for (i = 1; i <= NF; i ++) {print $ i} dist' distros.txt

      1.    എറ്റെമെനങ്കി പറഞ്ഞു

        ഏറ്റവും പ്രായോഗികമായ മാർഗം, ഓർമിക്കാൻ എളുപ്പമാണ്, ഇത് രണ്ട് ഇന്ദ്രിയങ്ങൾക്കും വേണ്ടി പ്രവർത്തിക്കുന്നു:
        പൂച്ച distros.txt | tr '\ n' '' ← തിരശ്ചീന stdout output ട്ട്‌പുട്ട് (ഇതിനകം മുകളിൽ ചർച്ചചെയ്തു)
        പൂച്ച distros.txt | tr '' '\ n' ലംബ stdout .ട്ട്‌പുട്ട്

        നന്ദി!

    2.    ജുവന്റ് പറഞ്ഞു

      വരിയിൽ നിന്ന് നിരയിലേക്കും തിരിച്ചും ലളിതമായ ഒരു പരിവർത്തനം മാത്രമേ നിങ്ങൾ ആഗ്രഹിക്കുന്നുള്ളൂവെങ്കിൽ തീർച്ചയായും എറ്റെമെനങ്കിയുടെ പരിഹാരം രണ്ട് വഴികളും മികച്ചതാണ്.

    3.    ജോസ് ജിഡിഎഫ് പറഞ്ഞു

      പ്രതികരിച്ചതിന് എല്ലാവർക്കും നന്ദി. ഞാൻ ചെയ്യുന്ന അടുത്ത സ്ക്രിപ്റ്റിൽ ഞാൻ അവ പ്രയോഗത്തിൽ വരുത്തും.

      നന്ദി.

  9.   ഗാറ്റോ പറഞ്ഞു

    നിങ്ങൾ മാത്രം ചെയ്യുകയാണെങ്കിൽ:
    എക്കോ $ (പൂച്ച distros.txt)

  10.   ആൻസൺ റോഡ്രിഗസ് പറഞ്ഞു

    ഇതിലും എളുപ്പമാണ്:
    awk '{printf $ 0 ″ «dist' distros.txt