![정규식을 사용하여 for 루프에서 Sed 사용](https://linux55.com/image/153268/%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20for%20%EB%A3%A8%ED%94%84%EC%97%90%EC%84%9C%20Sed%20%EC%82%AC%EC%9A%A9.png)
예제 이름 목록을 반복하고 sed를 사용하여 해당 예제 이름을 수정하기 위해 for 루프를 사용하여 json 파일을 수정하려고 합니다. 이제 입력 파일의 하위 집합은 다음과 같습니다.
"WA82671",
"WA8267-technical-replicate-1":"AGCGTTGAT+CACATGTCC",
"WA8267-technical-replicate-2":"TCATGGTCAAT+TGCAGTGAGC"
"WA82671":{ "/scratch/jjz86252/ipyrad/3RAD_processed/WA8267_R1_1.fq.gz",
"/scratch/jjz86252/ipyrad/3RAD_processed/WA8267_R2_1.fq.gz"
"name":"WA82671",
나는 희망한다;
"WA8267",
"WA8267-technical-replicate-1":"AGCGTTGAT+CACATGTCC",
"WA8267-technical-replicate-2":"TCATGGTCAAT+TGCAGTGAGC"
"WA8267":{"/scratch/jjz86252/ipyrad/3RAD_processed/WA8267_R1_1.fq.gz",
"/scratch/jjz86252/ipyrad/3RAD_processed/WA8267_R2_1.fq.gz"
"name":"WA8267",
나는 $(cat Samplenames); do sed -er 's/$i\1/$i/g' names;에서 다음 명령을 시도했지만 이 명령은 변경에 실패했습니다. i의 모든 값에 대해 전체 파일을 인쇄합니다.
답변1
/슬래시가 포함된 파일 경로를 사용하고 있으므로 sed 표현식에 쉼표를 사용해야 합니다. 그것은 마치 ...
for name in $(cat samplenames); do
sed -e "s,${name}1,${name},g" sample --in-place
done