Здесь я хочу избавиться от серийного числа на первом капитале каждой строки. Как я делаю в этом файле?
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 является новым и сложным для меня. Желание Вы даете мне совет.
Не зная, предложите ли вы после C
или line numbers
следующие решения:
Чтобы избавиться от 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] Чтобы избавиться от 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
Для записи в исходный файл и создания резервной копии используйте Опция --in-place
в команде sed
:
sed --in-place=.bak '5,22s/ [C]//g' line.txt
sed --in-place=.bak 's/^ *.[0-9] //g' line.txt
Для записи в новый файл:
sed 's/^ *.[0-9] //g' line.txt >> new_file.txt
sed '5,22s/ [C]//g' line.txt >> new_file.txt
Для сохранения пробелы перед каждой строкой:
sed 's/^ *.[0-9] / /g' line.txt
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