명령 출력에서 두 번째 열을 얻는 방법?
내 명령의 출력은 다음과 같습니다.
1540 "A B"
6 "C"
119 "D"
첫 번째 열은 항상 숫자 다음에 공백이 있고 큰 따옴표로 묶인 문자열입니다.
내 목적은 다음과 같이 두 번째 열만 얻는 것입니다.
"A B"
"C"
"D"
나는 <some_command> | awk '{print $2}'
이것을 달성 하기 위해 사용하려고했다 . 그러나 문제는 두 번째 열의 일부 값에 공백이 포함되어 있으며 이는 awk
필드를 구분하기위한 기본 구분 기호입니다 . 따라서 출력이 엉망입니다.
"A
"C"
"D"
두 번째 열의 값 (따옴표와 함께)을 깨끗하게 얻으려면 어떻게해야합니까?
또는 sed & regex를 사용하십시오.
<some_command> | sed 's/^.* \(".*"$\)/\1/'
s -F [field separator]
에서 선을 분할하는 데 사용하십시오 "
.
awk -F '"' '{print $2}' your_input_file
또는 파이프에서 입력
<some_command> | awk -F '"' '{print $2}'
산출:
A B
C
D
'awk'이외의 다른 것을 사용할 수 있다면 대신 이것을 시도하십시오
echo '1540 "A B"' | cut -d' ' -f2-
-d 는 구분 기호이고, -f 는자를 필드이며 -f2- 를 사용하면 끝까지 두 번째 필드를 자릅니다.
명령 출력 "docker images"에서 특정 열을 가져 오려면 작동해야합니다.
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 12543ced0f6f 10 months ago 122 MB
ubuntu latest 12543ced0f6f 10 months ago 122 MB
selenium/standalone-firefox-debug 2.53.0 9f3bab6e046f 12 months ago 613 MB
selenium/node-firefox-debug 2.53.0 d82f2ab74db7 12 months ago 613 MB
docker images | awk '{print $3}'
IMAGE
12543ced0f6f
12543ced0f6f
9f3bab6e046f
d82f2ab74db7
이것은 세 번째 열을 인쇄합니다
당신은 그것을 위해 awk가 필요하지 않습니다. read
Bash 쉘에서 사용하면 충분합니다.
some_command | while read c1 c2; do echo $c2; done
또는:
while read c1 c2; do echo $c2; done < in.txt
GNU awk가 있다면 이것이 원하는 솔루션입니다.
$ awk '{print $1}' FPAT='"[^"]+"' file
"A B"
"C"
"D"
awk -F"|" '{gsub(/\"/,"|");print "\""$2"\""}' your_file
#!/usr/bin/python
import sys
col = int(sys.argv[1]) - 1
for line in sys.stdin:
columns = line.split()
try:
print(columns[col])
except IndexError:
# ignore
pass
그런 다음 스크립트의 이름을 co로 지정한다고 가정하면 파일 크기를 얻기 위해 이와 같은 작업을 수행하십시오 (예에서는 Linux를 사용한다고 가정하지만 스크립트 자체는 OS 독립적 임).
ls -lh | co 5
참고 URL : https://stackoverflow.com/questions/16136943/how-to-get-the-second-column-from-command-output
'IT' 카테고리의 다른 글
PHP의 죽음의 하얀 화면 (0) | 2020.07.02 |
---|---|
Python-고유 한 사전 목록 (0) | 2020.07.02 |
새로운 Android Multidex 지원 라이브러리로 멀티 덱싱을 활성화하는 방법 (0) | 2020.07.02 |
C #에서 전월의 첫날과 마지막 날을 가져옵니다. (0) | 2020.07.02 |
날짜 시간을 밀리 초 단위로 문자열로 형식화 (0) | 2020.07.02 |