입력으로 사용되는 데이터 파일입니다.
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