sed를 사용하여 일치하는 패턴 왼쪽에 문자를 삽입하시겠습니까?

sed를 사용하여 일치하는 패턴 왼쪽에 문자를 삽입하시겠습니까?

입력으로 사용되는 데이터 파일입니다.

1
2
2
979
data
raw
32j
23
32323

산출:

/* 1
/* 2
/* 2
/* 979
data
raw
/* 32j
/* 23
/* 32323

sed를 사용하여 원하는 출력을 어떻게 얻을 수 있습니까? 패턴과 일치하는 정규식은 다음과 같습니다.^[0-9]*.

답변1

당신이 원하는 것은 숫자로 시작하는 줄을 주석 처리하는 것입니다. 이는 ^[0-9]*빈 줄이나 숫자가 전혀 없는 줄을 포함하여 모든 항목과 일치한다는 의미는 아닙니다 *. "0 이상"을 의미하므로 파일의 모든 줄과 일치합니다.

따라서 숫자로 시작하는 줄을 주석 처리하려면 다음을 사용할 수 있습니다.

$ sed  '/^[0-9]/ s|^|/* |' file 
/* 1
/* 2
/* 2
/* 979
data
raw
/* 32j
/* 23
/* 32323

또는:

$ sed -E 's|^([0-9])|/* \1|' file 
/* 1
/* 2
/* 2
/* 979
data
raw
/* 32j
/* 23
/* 32323

답변2

awk '/^[0-9]/{$0="/* "$0}1' filename

/* 1
/* 2
/* 2
/* 979
data
raw
/* 32j
/* 23
/* 32323

관련 정보