Удаление первого столбца из текстового файла с помощью awk - PullRequest
1 голос
/ 30 октября 2019

У меня есть следующий текстовый файл:

Article_Title                                                                            1st_Author   Publication_Year    Language   Citations

Über die Theorie des Stoßes zwischen Atomen und elektrisch geladenen Teilchen            Fermi        1924                German     54
Zur Quantelung des idealen einatomigen Gases                                             Fermi        1926                German     333 
Eine statistische Methode zur Bestimmung einiger Eigenschaften des Atoms und ihre 
Anwendung auf die Theorie des periodi schen Systems der Elemente                         Fermi        1928                German     1833
Über die magnetischen Momente der Atomkerne                                              Fermi        1929                German     795
Über das Intensitätsverhältnis der Dublettkomponenten der Alkalien                       Fermi        1929                German     134
Über den Ramaneffekt des Kohlendioxyds                                                   Fermi        1931                German     594
Quantum Theory of Radiation                                                              Fermi        1932                English    951
Zur Theorie der Hyperfeinstruktur                                                        Fermi        1933                German     280
Possible Production of Elements of Atomic Number Higher than 92                          Fermi        1934                English    175
Versuch einer Theorie der β-Strahlen                                                     Fermi        1934                German     525
Sopra lo Spostamento per Pressione delle Righe Elevate delle Serie Spettrali             Fermi        1934                Italian    901
Tentativo di una Teoria Dei Raggi β                                                      Fermi        1934                Italian    475
On the Absorption and the Diffusion of Slow Neutrons                                     Almadi       1936                English    199
The Ionization Loss of Energy in Gases and in Condensed Materials                        Fermi        1940                English    710
The Capture of Negative Mesotrons in Matter                                              Fermi        1947                English    1156
Interference Phenomena of Slow Neutrons                                                  Fermi        1947                English    301
On the Origin of the Cosmic Radiation                                                    Fermi        1949                English    3309
Are Mesons Elementary Particles?                                                         Fermi        1949                English    498
Angular Distribution of the Pions Produced in High Energy Nuclear Collisions             Fermi        1951                English    324
Multiple Production of Pions in Nucleon-Nucleon Collisions at Cosmotron Energies         Fermi        1953                English    118

Первый столбец - это название научной статьи, второй - фамилия автора, третий - год публикации, четвертый -язык статьи и пятый - это количество ссылок.

Я хотел бы преобразовать его в нечто вроде этого:

  1924  54
  1926  333

  1928  1833
  1929  795
  1929  134
  1931  594
  1932  951
  1933  280
  1934  175
  1934  525
  1934  901
  1934  475
  1936  199
  1940  710
  1947  1156
  1947  301
  1949  3309
  1949  498
  1951  324
  1953  118

Итак, мне нужно удалить первый столбец,второй и четвертый

Проблема в столбце Article_Titles ... Если бы заголовки статей были такими:

Quantum_Theory_of_Radiation

Мне просто нужно запустить следующуюкоманда:

sed -i '1,2d' plotting_data.txt  # Removing First and second Line 
awk '{$1=$2=$4=""; print $0}' plotting_data.txt > tmp && mv tmp plotting_data.txt # Removing First, Second and Fourth Column

Проблема в том, что между словами в заголовках статей есть пробелы. Я не знаю, как сказать awk или sed, чтобы удалить этот столбец ... Не могли бы вы помочь мне?

Я использую следующую версию awk:

mawk 1.3.3 ноября 1996, Copyright (C) Майкл Д. Бреннан

скомпилированные ограничения: макс. NF 32767 буфер sprintf 2040

, а также пробелмежду полями есть все пустые символы

1 Ответ

5 голосов
/ 30 октября 2019

Предполагая, что пустое пространство в вашем образце - все пустые символы, это будет работать при использовании любого awk в любой оболочке в любом окне UNIX:

$ awk 'NR==1{beg=index($0,$2)} NR>2{$0=substr($0,beg); print $2, $4}' file
1924 54
1926 333

1928 1833
1929 795
1929 134
1931 594
1932 951
1933 280
1934 175
1934 525
1934 901
1934 475
1936 199
1940 710
1947 1156
1947 301
1949 3309
1949 498
1951 324
1953 118
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...