두 개의 Linux 명령을 실행 중인데 두 값을 구분하는 공백과 점 없이 결과 값을 파일 이름에 입력하고 싶습니다. 지금까지 나는 이것을 얻었습니다 :
pid=`sudo dmidecode -s system-product-name`
vid=`sudo dmidecode -s system-version`
# cleanup spaces in $pid and $vid
filename=$pid.$vid.tar.gz
두 변수의 공백을 정리하는 방법은 무엇입니까?
답변1
bash "패턴 대체"를 사용할 수 있습니다(자세한 내용은 해당 문자열에 대한 매뉴얼 페이지를 검색하세요).
filename=${pid// /}.${vid// /}.tar.gz
이중 슬래시는 패턴의 모든 항목을 대체합니다. 이중 슬래시와 다음 슬래시 사이의 공백이 패턴입니다. 교체 패턴은 마지막 슬래시 뒤에 나오며, 이 경우 비어 있습니다. 마지막 슬래시를 제거할 수 있지만 명확성을 위해 공백을 포함하므로 이를 선호합니다.
답변2
sed를 사용할 수 있습니다:
pid=$(sudo dmidecode -s system-product-name | sed 's/ *//g')