Избавьтесь от номера последовательности на первом столбце

Здесь я хочу избавиться от серийного числа на первом капитале каждой строки. Как я делаю в этом файле?

     1  #
     2  # Automatically generated file; DO NOT EDIT.
     3  # OpenWrt Configuration
     4  #
     5  CONFIG_MODULES=y
     6  CONFIG_HAVE_DOT_CONFIG=y
     7  CONFIG_TARGET_sunxi=y
     8  # CONFIG_TARGET_sunxi_BPI-M1-Plus is not set
     9  CONFIG_TARGET_sunxi_BPI-M1=y
    10  # CONFIG_TARGET_sunxi_BPI-R1 is not set
    11  CONFIG_TARGET_BOARD="sunxi"
    12  CONFIG_TARGET_ARCH_PACKAGES="sunxi"
    13  CONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16"
    14  CONFIG_CPU_TYPE="cortex-a8+vfpv3"
    15  CONFIG_LINUX_3_18=y
    16  CONFIG_DEFAULT_base-files=y
    17  CONFIG_DEFAULT_busybox=y
    18  CONFIG_DEFAULT_dnsmasq=y
    19  CONFIG_DEFAULT_dropbear=y
    20  CONFIG_DEFAULT_firewall=y
    21  CONFIG_DEFAULT_fstools=y
    22  CONFIG_DEFAULT_ip6tables=y
^^^^  ^^

Мне жаль. Я должен добавить пробелы прежде последовательности номера и отметить их. На каждой строке существуют пробелы. На самом деле существует более чем 4 000 строк, которые я должен обработать. Здесь я просто отправляю 1-22. Команда sed должна работать. Я забываю объяснять явно. regex является новым и сложным для меня. Желание Вы даете мне совет.

1
задан 21 February 2017 в 12:49

2 ответа

Не зная, предложите ли вы после C или line numbers следующие решения:

  1. Чтобы избавиться от line numbers, используйте:

    sed 's/^ *.[0-9]  //g' line.txt
    
    # Result
    
    #
    # Automatically generated file; DO NOT EDIT.
    # OpenWrt Configuration
    #
    CONFIG_MODULES=y
    CONFIG_HAVE_DOT_CONFIG=y
    CONFIG_TARGET_sunxi=y
    # CONFIG_TARGET_sunxi_BPI-M1-Plus is not set
    CONFIG_TARGET_sunxi_BPI-M1=y
    # CONFIG_TARGET_sunxi_BPI-R1 is not set
    CONFIG_TARGET_BOARD="sunxi"
    CONFIG_TARGET_ARCH_PACKAGES="sunxi"
    CONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16"
    CONFIG_CPU_TYPE="cortex-a8+vfpv3"
    CONFIG_LINUX_3_18=y
    CONFIG_DEFAULT_base-files=y
    CONFIG_DEFAULT_busybox=y
    CONFIG_DEFAULT_dnsmasq=y
    CONFIG_DEFAULT_dropbear=y
    CONFIG_DEFAULT_firewall=y
    CONFIG_DEFAULT_fstools=y
    CONFIG_DEFAULT_ip6tables=y
    
    [ 1112]
  2. Чтобы избавиться от C, используйте:

    sed '5,22s/ [C]//g' line.txt
    
    
    # Results
    
    1  #
    2  # Automatically generated file; DO NOT EDIT.
    3  # OpenWrt Configuration
    4  #
    5 ONFIG_MODULES=y
    6 ONFIG_HAVE_DOT_CONFIG=y
    7 ONFIG_TARGET_sunxi=y
    8  #ONFIG_TARGET_sunxi_BPI-M1-Plus is not set
    9 ONFIG_TARGET_sunxi_BPI-M1=y
    10  #ONFIG_TARGET_sunxi_BPI-R1 is not set
    11 ONFIG_TARGET_BOARD="sunxi"
    12 ONFIG_TARGET_ARCH_PACKAGES="sunxi"
    13 ONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16"
    14 ONFIG_CPU_TYPE="cortex-a8+vfpv3"
    15 ONFIG_LINUX_3_18=y
    16 ONFIG_DEFAULT_base-files=y
    17 ONFIG_DEFAULT_busybox=y
    18 ONFIG_DEFAULT_dnsmasq=y
    19 ONFIG_DEFAULT_dropbear=y
    20 ONFIG_DEFAULT_firewall=y
    21 ONFIG_DEFAULT_fstools=y
    22 ONFIG_DEFAULT_ip6tables=y
    
  3. Для записи в исходный файл и создания резервной копии используйте Опция --in-place в команде sed:

    sed --in-place=.bak '5,22s/ [C]//g' line.txt
    
    sed --in-place=.bak 's/^ *.[0-9]  //g' line.txt
    
  4. Для записи в новый файл:

    sed 's/^ *.[0-9]  //g' line.txt >> new_file.txt
    
    sed '5,22s/ [C]//g' line.txt  >> new_file.txt
    
  5. Для сохранения пробелы перед каждой строкой:

    sed 's/^ *.[0-9]  /     /g' line.txt
    
3
ответ дан 7 December 2019 в 12:35
awk '{print $2, $3, $4, $5, $6, $7, $8}' ur4000rowfile.txt

даст:

#      
# Automatically generated file; DO NOT EDIT.
# OpenWrt Configuration    
#      
CONFIG_MODULES=y      
CONFIG_HAVE_DOT_CONFIG=y      
CONFIG_TARGET_sunxi=y      
# CONFIG_TARGET_sunxi_BPI-M1-Plus is not set  
CONFIG_TARGET_sunxi_BPI-M1=y      
# CONFIG_TARGET_sunxi_BPI-R1 is not set  
CONFIG_TARGET_BOARD="sunxi"      
CONFIG_TARGET_ARCH_PACKAGES="sunxi"      
CONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16"  
CONFIG_CPU_TYPE="cortex-a8+vfpv3"      
CONFIG_LINUX_3_18=y      
CONFIG_DEFAULT_base-files=y      
CONFIG_DEFAULT_busybox=y      
CONFIG_DEFAULT_dnsmasq=y      
CONFIG_DEFAULT_dropbear=y      
CONFIG_DEFAULT_firewall=y      
CONFIG_DEFAULT_fstools=y      
CONFIG_DEFAULT_ip6tables=y

Или если Вы делаете это:

awk '{$1=""; print $0}' ur4000rowfile.txt

Вы получите вывод как это:

 #
 # Automatically generated file; DO NOT EDIT.
 # OpenWrt Configuration
 #
 CONFIG_MODULES=y
 CONFIG_HAVE_DOT_CONFIG=y
 CONFIG_TARGET_sunxi=y
 # CONFIG_TARGET_sunxi_BPI-M1-Plus is not set
 CONFIG_TARGET_sunxi_BPI-M1=y
 # CONFIG_TARGET_sunxi_BPI-R1 is not set
 CONFIG_TARGET_BOARD="sunxi"
 CONFIG_TARGET_ARCH_PACKAGES="sunxi"
 CONFIG_DEFAULT_TARGET_OPTIMIZATION="-Os -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16"
 CONFIG_CPU_TYPE="cortex-a8+vfpv3"
 CONFIG_LINUX_3_18=y
 CONFIG_DEFAULT_base-files=y
 CONFIG_DEFAULT_busybox=y
 CONFIG_DEFAULT_dnsmasq=y
 CONFIG_DEFAULT_dropbear=y
 CONFIG_DEFAULT_firewall=y
 CONFIG_DEFAULT_fstools=y
 CONFIG_DEFAULT_ip6tables=y

Наконец, если Вы wan't для использования вывода для создания нового файла просто перенаправьте вывод в новый файл как это:

awk '{print $2, $3, $4, $5, $6, $7, $8}' ur400rowfile.txt > urnewcleanfile.txt

или это:

awk '{$1=""; print $0}' ur400rowfile.txt > urnewcleanfile.txt
0
ответ дан 7 December 2019 в 12:35

Другие вопросы по тегам:

Похожие вопросы: