여러 파일에서 데이터를 가져오고 파일 이름을 추가하는 Bash 명령

여러 파일에서 데이터를 가져오고 파일 이름을 추가하는 Bash 명령

폴더에 /tmp다음 파일이 있습니다 (예: )

1.id
2.id
3.id
4.id

곧...

이 파일에는 숫자가 있습니다. 예를 들어 은( 1.id는) 어디에 있을 수 있는지 1000, 2.id는 어디에 있을 수 있는지 2000등입니다.

*.id한 줄의 bash 명령을 사용하여 모든 파일( )의 값(번호)을 자동으로 가져오고 파일 이름도 추가하고 싶습니다 .

따라서 출력은 다음과 같아야 합니다.

1.id=1000
2.id=2000

답변1

grep이 폴더에서 이것을 사용하세요:

grep "" *.id

산출:

1.id:123
2.id:13
3.id:5
4.id:87876

그런데:나는 이것을 proc 또는 sysfs 파일 시스템에서 자주 사용합니다.

cd /sys/class/net/eth0
grep "" *

이는 sysfs의 이더넷 인터페이스에 대한 모든 정보를 제공합니다 eth0.

답변2

사용awk

awk '{printf "%s=%s\n",FILENAME,$0}' *.id

또는

awk 'OFS="=" {print FILENAME,$0}' *.id

% awk '{printf "%s=%s\n",FILENAME,$0}' *.id
1.id=1000
2.id=2000

% awk 'OFS="=" {print FILENAME,$0}' *.id
1.id=1000
2.id=2000

% awk '{printf "%s:%s\n",FILENAME,$0}' *.id
1.id:1000
2.id:2000

등.

답변3

이것은 bash한 줄입니다.

for i in *.id; do echo ""$i"=$(<"$i")"; done

예:

$ ls -1
1.id
2.id


$ for i in *.id; do echo ""$i"=$(<"$i")"; done
1.id=10000
2.id=2000

관련 정보