Вырезать команду со словом в качестве разделителя

Я думаю, вы можете вызвать терминал w / CTRL + ALT + 'T', а затем использовать apt-get для установки единицы,

"sudo apt-get install unity"

[d2 ], если вы еще не пробовали это ...

7
задан 13 December 2017 в 08:13

18 ответов

Я предлагаю:

awk -F 'ABCD' '{print $1 FS "."}' file

Выход:

171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.

FS содержит ваш разделитель «ABCD». «ABCD» является регулярным выражением

9
ответ дан 22 May 2018 в 17:01

Я предлагаю:

awk -F 'ABCD' '{print $1 FS "."}' file

Выход:

171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.

FS содержит ваш разделитель «ABCD». «ABCD» является регулярным выражением

9
ответ дан 18 July 2018 в 01:18

Я предлагаю:

awk -F 'ABCD' '{print $1 FS "."}' file

Выход:

171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.

FS содержит ваш разделитель «ABCD». «ABCD» является регулярным выражением

9
ответ дан 24 July 2018 в 17:22

awk может выполнить задание, если вы предоставили флаг -F слову, который вы хотите использовать:

$ awk -F 'test'  '{print $1;print $2}'  <<<  "onetesttwotest"                                                            
one
two

В вашем конкретном случае это будет:

[ f2]

Судя по вашему примеру, вы только пытаетесь напечатать материал до ABCD, чтобы удалить все после этого также вариант:

$ awk '{print substr($0,0,match($0,/ABCD/)+4);}' input.txt                                                               
171212 16082784       6264 XXX     xxxxxxxx Transaction XXXXX abend ABCD.
4
ответ дан 22 May 2018 в 17:01

sed версия:

sed 's/ABCD.*/ABCD./' input.txt
171212 16082784       6264 XXX     xxxxxxxx Transaction XXXXX abend ABCD.

Источник: https://unix.stackexchange.com/questions/257514/how-to-delete-everything-after-a-certain-pattern- или-а-строка-в-файл

4
ответ дан 22 May 2018 в 17:01
  • 1
    Я изменил его, но будет ли это иметь значение? – user 13 December 2017 в 08:26
  • 2
    Это все равно будет работать - просто указывая, что это не обязательно – steeldriver 13 December 2017 в 08:29

grep solution:

grep -o '^.*ABCD\.' input.txt

Регулярное выражение будет соответствовать каждой строке, начинающейся с ^ с любым символом ., повторным числом раз * и заканчивается строкой [ f6] Обратная косая черта \ в конце ускользает от специального значения точки ..

Опция -o сообщит команде grep для печати только совпадающих (непустых) частей соответствующей строки.

2
ответ дан 22 May 2018 в 17:01

cut может выполнять эту работу. Не на основе слова, а на основе разделителя ..

Использование:

cut -f 1 -d '.' input.txt | xargs -I "%" echo %.

Выход

rooney@bond-pc:~$ cat input.txt 
171212 16082784       6264 XXX     xxxxxxxx Transaction XXXXX abend ABCD. The task has terminated abnormally because of a program check. 16:08:27
rooney@bond-pc:~$ 
rooney@bond-pc:~$ cut -f 1 -d '.' input.txt | xargs -I "%" echo %.
171212 16082784       6264 XXX     xxxxxxxx Transaction XXXXX abend ABCD.

xargs используется здесь только для добавления . в конец строки ABCD .

2
ответ дан 22 May 2018 в 17:01

sed версия:

sed 's/ABCD.*/ABCD./' input.txt
171212 16082784       6264 XXX     xxxxxxxx Transaction XXXXX abend ABCD.

Источник: https://unix.stackexchange.com/questions/257514/how-to-delete-everything-after-a-certain-pattern- или-а-строка-в-файл

4
ответ дан 22 May 2018 в 17:01

sed версия:

sed 's/ABCD.*/ABCD./' input.txt
171212 16082784       6264 XXX     xxxxxxxx Transaction XXXXX abend ABCD.

Источник: https://unix.stackexchange.com/questions/257514/how-to-delete-everything-after-a-certain-pattern- или-а-строка-в-файл

4
ответ дан 22 May 2018 в 17:01

sed версия:

sed 's/ABCD.*/ABCD./' input.txt
171212 16082784       6264 XXX     xxxxxxxx Transaction XXXXX abend ABCD.

Источник: https://unix.stackexchange.com/questions/257514/how-to-delete-everything-after-a-certain-pattern- или-а-строка-в-файл

4
ответ дан 22 May 2018 в 17:01

grep solution:

grep -o '^.*ABCD\.' input.txt

Регулярное выражение будет соответствовать каждой строке, начинающейся с ^ с любым символом ., повторным числом раз * и заканчивается строкой ABCD. Обратная косая черта \ в конце ускользает от специального значения точки ..

Опция -o сообщит команде grep для печати только совпадающих (непустых) частей соответствующей строки.

2
ответ дан 18 July 2018 в 01:18

cut может выполнять эту работу. Не на основе слова, а на основе разделителя ..

Использование:

cut -f 1 -d '.' input.txt | xargs -I "%" echo %.

Выход

rooney@bond-pc:~$ cat input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD. The task has terminated abnormally because of a program check. 16:08:27 rooney@bond-pc:~$ rooney@bond-pc:~$ cut -f 1 -d '.' input.txt | xargs -I "%" echo %. 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.

xargs используется здесь только для добавления . в конец строки ABCD .

2
ответ дан 18 July 2018 в 01:18

awk может выполнить задание, если вы предоставили флаг -F слову, который вы хотите использовать:

$ awk -F 'test' '{print $1;print $2}' <<< "onetesttwotest" one two

В вашем конкретном случае это будет:

$ awk -F 'ABCD' '{print $1,FS}' input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD

Судя по вашему примеру, вы только пытаетесь напечатать материал до ABCD, чтобы удалить все после этого также вариант:

$ awk '{print substr($0,0,match($0,/ABCD/)+4);}' input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.
4
ответ дан 18 July 2018 в 01:18

sed версия:

sed 's/ABCD.*/ABCD./' input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.

Источник: https://unix.stackexchange.com/questions/257514/how-to-delete-everything-after-a-certain-pattern- или-а-строка-в-файл

4
ответ дан 18 July 2018 в 01:18

grep solution:

grep -o '^.*ABCD\.' input.txt

Регулярное выражение будет соответствовать каждой строке, начинающейся с ^ с любым символом ., повторным числом раз * и заканчивается строкой ABCD. Обратная косая черта \ в конце ускользает от специального значения точки ..

Опция -o сообщит команде grep для печати только совпадающих (непустых) частей соответствующей строки.

2
ответ дан 24 July 2018 в 17:22

cut может выполнять эту работу. Не на основе слова, а на основе разделителя ..

Использование:

cut -f 1 -d '.' input.txt | xargs -I "%" echo %.

Выход

rooney@bond-pc:~$ cat input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD. The task has terminated abnormally because of a program check. 16:08:27 rooney@bond-pc:~$ rooney@bond-pc:~$ cut -f 1 -d '.' input.txt | xargs -I "%" echo %. 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.

xargs используется здесь только для добавления . в конец строки ABCD .

2
ответ дан 24 July 2018 в 17:22

awk может выполнить задание, если вы предоставили флаг -F слову, который вы хотите использовать:

$ awk -F 'test' '{print $1;print $2}' <<< "onetesttwotest" one two

В вашем конкретном случае это будет:

$ awk -F 'ABCD' '{print $1,FS}' input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD

Судя по вашему примеру, вы только пытаетесь напечатать материал до ABCD, чтобы удалить все после этого также вариант:

$ awk '{print substr($0,0,match($0,/ABCD/)+4);}' input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.
4
ответ дан 24 July 2018 в 17:22

sed версия:

sed 's/ABCD.*/ABCD./' input.txt 171212 16082784 6264 XXX xxxxxxxx Transaction XXXXX abend ABCD.

Источник: https://unix.stackexchange.com/questions/257514/how-to-delete-everything-after-a-certain-pattern- или-а-строка-в-файл

4
ответ дан 24 July 2018 в 17:22
  • 1
    Я изменил его, но будет ли это иметь значение? – user 13 December 2017 в 08:26
  • 2
    Это все равно будет работать - просто указывая, что это не обязательно – steeldriver 13 December 2017 в 08:29

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

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