我试图在文件中获取类似于第二个字段的基本名称的内容并将其替换:
$ myfile=/var/lib/jenkins/myjob/myfile
$ sha512sum "$myfile" | tee myfile-checksum
$ cat myfile-checksum
deb32b1c7122fc750a6742765e0e54a821 /var/lib/jenkins/myjob/myfile
所需的输出:
deb32b1c7122fc750a6742765e0e54a821 myfile
因此,人们sha512sum -c myfile-checksum
无需手动编辑即可轻松完成操作。
使用sed或awk,这就是我目前为止的效果:)
awk -F/ '{print $NF}' myfile-checksum
sed -i "s|${value}|$(basename $value)|" myfile-checksum
谢谢。
您可以将字段分隔符设置为空格和斜杠,并打印第一个和最后一个字段:
awk -F" |/" '{print $1, $NF}'
用您的输入:
$ awk -F" |/" '{print $1, $NF}' <<< "deb32b1c7122fc750a6742765e0e54a821 /var/lib/jenkins/myjob/myfile"
deb32b1c7122fc750a6742765e0e54a821 myfile
如果文件名中包含空格,请按照Ed Morton的指示,删除从第一个字段到最后一个斜杠的所有内容:
$ awk '{hash=$1; gsub(/^.*\//,""); print hash, $0}' <<< "deb32b1c7122fc750a6742765e0e54a821 /var/lib/jenkins/myjob/myfile with spaces"
deb32b1c7122fc750a6742765e0e54a821 myfile with spaces
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句