폴더에 /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