Как редактировать текстовый файл с помощью сценария оболочки (разбивать, заменять, объединять ..) - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь сделать скрипт для редактирования текста.В моем текстовом файле у меня есть

3c26 d3ac 27d4 c03f 5dc4 5242 1d96 bbbf

4b7c 84bf 51fb c73f f784 7a8e bee9 c6bf

32df aafb bcf9 6ebf 099b de28 5714 bcbf

7ada f876 320a c9bf 9afc 7ea2 f4b4 c93f

. Я хочу объединить каждые 4 блока чисел, после чего записать каждый в строку, начинающуюся с 0x и заканчивая ,

Iхотите, чтобы текст выглядел следующим образом

0x3c26d3ac27d4c03f,

0x5dc452421d96bbbf,

0x4b7c84bf51fbc73f,

0xf7847a8ebee9c6bf,

0x32dfaafbbcf96ebf,

0x099bde285714bcbf,

0x7adaf876320ac9bf, 

0x9afc7ea2f4b4c93f,

Ответы [ 2 ]

1 голос
/ 23 сентября 2019
grep -oE '[a-z0-9]{4}' input.txt | awk '{ l = l $0; if ((NR % 4) == 0){ print "0x" l ","; l = "" }}'

0x3c26d3ac27d4c03f,
0x5dc452421d96bbbf,
0x4b7c84bf51fbc73f,
0xf7847a8ebee9c6bf,
0x32dfaafbbcf96ebf,
0x099bde285714bcbf,
0x7adaf876320ac9bf,
0x9afc7ea2f4b4c93f,
1 голос
/ 23 сентября 2019

Simple Sed и Awk будут работать здесь

#cat your_file_name|sed '/^ *$/d' |awk '{print ("0x"$1$2$3$4",""\n""0x"$5$6$7$7",")}'
0x3c26d3ac27d4c03f,
0x5dc452421d961d96,
0x4b7c84bf51fbc73f,
0xf7847a8ebee9bee9,
0x32dfaafbbcf96ebf,
0x099bde2857145714,
0x7adaf876320ac9bf,
0x9afc7ea2f4b4f4b4,

Это самый простой способ реализации, пожалуйста, воспользуйтесь ссылками и оптимизируйте свою логику.

...