sed를 사용하여 문자열에서 첫 번째 X 문자를 제거하려면 어떻게합니까?
작은 산업 상자에 임베디드 Linux 용 쉘 스크립트를 작성하고 있습니다. 텍스트가 포함 된 변수가 pid: 1234
있고 줄에서 첫 번째 X 문자를 제거하려고하므로 1234 만 유지됩니다. 더 많은 변수를 "청소"해야하므로 X 첫 문자를 잘라 내야하며 ${string:5}
시스템에서 어떤 이유로 든 작동하지 않습니다.
상자가 가지고있는 유일한 것입니다 sed
.
다음을 작동 시키려고합니다.
result=$(echo "$pid" | sed 's/^.\{4\}//g')
어떤 아이디어?
이것은 또한 일을 할 것입니다 :
echo "$pid"|awk '{print $2}'
다음이 작동합니다.
var="pid: 1234"
var=${var:5}
당신은시겠습니까 bash
쉘 스크립트를 실행?
POSIX 호환도
var=${var#?????}
외부 프로세스를 사용하는 것이 바람직하지만 고정 길이 패턴의 형태로 5를 하드 코딩해야합니다.
다음을 사용하여 첫 번째 X 문자를 자르는 간결한 방법이 cut(1)
있습니다. 이 예에서는 처음 4자를 제거합니다.
echo "$pid" | cut -c 4-
구문을 사용하려면 -r
옵션 ( "스크립트에서 확장 정규식 사용") sed
을 사용하십시오 {n}
.
$ echo 'pid: 1234'| sed -r 's/^.{5}//'
1234
문자열에서 처음 두 문자를 자릅니다.
$ string="1234567890"; echo "${string:2}"
34567890
기회도있을 cut
것입니다. 그렇다면:
[me@home]$ echo "pid: 1234" | cut -d" " -f2
1234
파이프를 통해 awk '{print substr($0,42)}'
어디 42 드롭 문자의 수보다 하나 더 많은 것이다. 예를 들면 다음과 같습니다.
$ echo abcde| awk '{print substr($0,2)}'
bcde
$
cut
대신에를 사용 하는 다른 방법 입니다 sed
.
result=`echo $pid | cut -c 5-`
여기 sed
에 awk
, cut
및 bash
구문을 사용하는 솔루션이 있습니다 . 다른 POSIX 준수 변형을 던지고 싶습니다.
$ echo "pid: 1234" | tail -c +6
1234
-c
입력 데이터의 끝부터 세는 바이트 오프셋을 꼬리에 알려주지 만, 숫자가 +
부호로 시작하면 입력 데이터의 시작부터 끝까지입니다.
처음부터 n 문자를 제거하는 대신 숫자를 직접 추출 할 수 있습니다. 이렇게 ...
$ echo "pid: 1234" | grep -Po "\d+"
이것은보다 강력한 솔루션 일 수 있으며보다 직관적 인 것 같습니다.
이 질문 에 의해 제공된 순수한 sed에서 답변을 찾았습니다 (물론이 질문이 게시 된 후에 게시 됨). 이것은 sed에서만 요청한 내용을 정확하게 수행합니다.
result=\`echo "$pid" | sed '/./ { s/pid:\ //g; }'\``
)의 점 sed '/./
은 원하는 항목입니다. 귀하의 질문은 정확히 내가 시도한 것입니다. 제 경우에는 파일의 특정 줄을 일치시키고 주석 처리를 제거하려고했습니다. 제 경우에는 다음과 같습니다.
# Uncomment a line:
sed -i '/#\ COMMENTED_LINE_TO_MATCH/ { s/#\ //g; }' /path/to/target/file
-i
후에는 sed
편집 할 수있는 장소에있는 파일 (당신이 전에 파일을 편집에 일치 식을 테스트 할 경우이 스위치를 제거)입니다.
(FTR, 나는이 답변을 신용이 아닌 것으로 게시했지만 단순히이 질문이 요청 한대로 sed로 완전히하고 싶었 기 때문에 이전 답변 중 어느 것도 그 문제를 해결하지 못했습니다.)
'Programming' 카테고리의 다른 글
Ruby on Rails에서 지정된 ActiveRecord 쿼리에 의해 생성되는 SQL을 어떻게 볼 수 있습니까? (0) | 2020.07.29 |
---|---|
Google 보이지 않는 reCAPTCHA 배지를 숨기는 방법 (0) | 2020.07.29 |
RSpec과의 시간 비교 문제 (0) | 2020.07.29 |
iOS로 이미지 크기를 쉽게 조정하고 최적화하는 방법은 무엇입니까? (0) | 2020.07.29 |
PHP 용으로 예쁜 글씨가 있습니까? (0) | 2020.07.29 |