awk를 사용하여 출력의 첫 번째 필드에 문자열을 추가하는 방법은 무엇입니까?

awk를 사용하여 출력의 첫 번째 필드에 문자열을 추가하는 방법은 무엇입니까?

다음 스크립트는 출력을 인쇄합니다.

/var/lib/ambari-server/resources/scripts/configs.sh get localhost c1 yarn-env

스크립트 출력:

 "yarn_log_dir_prefix" : "/var/log/hadoop-yarn",
 "yarn_pid_dir_prefix" : "/var/run/hadoop-yarn",
 "yarn_user" : "yarn",
 "yarn_user_nofile_limit" : "32768",
 "yarn_user_nproc_limit" : "65536"

파이프라인 awk 또는 perl oneline 선형을 추가하고 싶습니다.원사 환경출력의 첫 번째 필드에는 다음이 포함됩니다. (예상 결과)

/var/lib/ambari-server/resources/scripts/configs.sh get localhost c1 yarn-env | awk ...


yarn-env  "yarn_log_dir_prefix" : "/var/log/hadoop-yarn",
yarn-env  "yarn_pid_dir_prefix" : "/var/run/hadoop-yarn",
yarn-env  "yarn_user" : "yarn",
yarn-env  "yarn_user_nofile_limit" : "32768",
yarn-env  "yarn_user_nproc_limit" : "65536"

답변1

/var/lib/ambari-server/resources/scripts/configs.sh get localhost c1 yarn-env |
awk '{ print "yarn-env", $0 }'

이 짧은 스크립트는 명령 입력의 각 줄 앞에 awk문자열을 추가합니다 . yarn-env사용되는 구분 기호는 awk변수 OFS("출력 필드 구분 기호", 기본적으로 단일 공백임)이므로 사이에 탭 문자를 추가하려면 다음을 사용하세요.

/var/lib/ambari-server/resources/scripts/configs.sh get localhost c1 yarn-env |
awk -vOFS="\t" '{ print "yarn-env", $0 }'

또는 다음을 사용하십시오 sed.

/var/lib/ambari-server/resources/scripts/configs.sh get localhost c1 yarn-env |
sed 's/^/yarn-env /'

답변2

Perl을 사용하여 이를 수행하는 한 가지 방법은 다음과 같습니다.

perl -pe 's/^/yarn_env /'

아시다시피, TIMTOWTDI.

관련 정보