행의 첫 번째 N자를 삭제하기 위한 unix 명령어는 무엇입니까?
예를 들어 다음과 같은 경우가 있습니다.
tail -f logfile | grep org.springframework | <command to remove first N characters>
난 그것을 생각하고 있었어.tr할 수 있을지는 모르겠지만 잘 모르겠어요.
사용하다cut. 예: 각 줄의 처음 4자를 제거하려면(예: 5번째 문자부터 시작):
tail -f logfile | grep org.springframework | cut -c 5-
sed 's/^.\{5\}//' logfile
5를 원하는 숫자로 바꾸면 효과가 있을 거야
각 행의 경우 편집 sed 's/^.\{5\}//g' logfile
사용할 수 있습니다.cut:
cut -c N- file.txt > new_file.txt
-c:성격.
file.txt:입력 파일
new_file.txt:출력 파일
N-:절단되어 새 파일에 출력되는 N에서 끝까지의 문자.
또한 각각 n번째 문자, n번째 문자부터 m번째 문자까지를 의미하는 'N', 'N-M', '-M'과 같은 다른 arg도 사용할 수 있습니다.
그러면 입력 파일의 각 행에 대한 작업이 수행됩니다.
x=hello
echo ${x:1}
elo를 반환하다
필요에 따라 1을 N으로 바꿉니다.
다음은 bash에서 테스트된 간단한 함수입니다. 함수의 첫 번째 매개 변수는 문자열이고 두 번째 매개 변수는 제거할 문자 수입니다.
function stringStripNCharsFromStart {
echo ${1:$2:${#1}}
}
사용방법:
$ stringStripNCharsFromStart "12abcdefgh-" 2
# 2abcdefgh-
스크린샷:
tail -f logfile | grep org.springframework | cut -c 900-
처음 900자를 삭제합니다.
cut900-을 사용하여 행의 끝에 900번째 문자를 표시합니다.
하지만 이 모든 것을 GREP로 연결하면 아무것도 얻을 수 없다.
생각합니다awk는 필터링 및 필터링된 라인에서 필요한 문자열 조작 기능을 모두 수행할 수 있기 때문에 최적의 도구입니다.
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
또는
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
언급URL : https://stackoverflow.com/questions/971879/what-is-a-unix-command-for-deleting-the-first-n-characters-of-a-line
'programing' 카테고리의 다른 글
| Eclipse용 Bash 스크립트 플러그인? (0) | 2023.04.19 |
|---|---|
| PowerShell에서 특정 변수가 글로벌 범위에 존재하는지 여부를 테스트하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
| 명령어로 파일을 사용하여 출력을 잘라내지 않고 같은 파일로 리다이렉트하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
| 프로세스가 정지된 경우 프로세스를 재시작하는 bash 스크립트를 작성하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
| WPF 텍스트 상자에 스택 패널이 채워지지 않음 (0) | 2023.04.19 |
