我有一个由md5生成的数千行的文件,其中包含哈希,然后是每行的路径。我正在搜索数百个sed示例,但无法解读它们。
我如何处理并包括每行的最后一个斜杠,然后只输出文件名?
fd373e07fd6f85085455a7d03a6ea8d8 /Volumes/yadda/20121007-083424-MDT-5DM35545.CR2
b4108ee8509dbfd0e8fd93effbb2c87f /Volumes/yadda/20121007-083424-MDT-5DM35546.CR2
98188a4e073a65d39840b34446228533 /Volumes/yadda/20121007-083424-MDT-5DM35547.CR2
7fe69f18e1a216a7a68812b1b3322764 /Volumes/yadda/20121007-083424-MDT-5DM35548.CR2
7b48289014eddab153a819a460a46f83 /Volumes/yadda/20121007-083424-MDT-5DM35549.CR2
832f43451691fa4e8577f66820f8714c /Volumes/yadda/20121007-083424-MDT-5DM35550.CR2
对于输出,我只想要文件名:
5DM35545.CR2
5DM35546.CR2
5DM35547.CR2
5DM35548.CR2
5DM35549.CR2
5DM35550.CR2
我知道我只能删除哈希值然后使用basename,但我希望在一次操作中完成它,并学习一点sed。
感谢您不要捣毁新手。
答案 0 :(得分:3)
awk -F- '{ print $NF }' input.txt
-F
告诉awk
字段分隔符,在您的情况下应为-
。 $NF
表示最后一个字段。 input.txt
应该是包含文件名的文件,每个文件名都在不同的行上。
答案 1 :(得分:2)
你可以做这样的事情
sed 's|.*-MDT-||' data_file
此正则表达式删除每行中-MDT之前的所有内容
答案 2 :(得分:0)
我不知道你对这些名称做了什么,但是如果要在以后的文件中运行循环的脚本中使用它们,你可以在循环中包含这个转换:
#!/bin/bash
while read -r md5 file; do
[[ -z $md5 ]] && continue
base=${file##*-}
echo "md5: $md5"
echo "file:$file"
echo "base: $base"
done < input.txt
<强>测试强>
$ while read -r md5 file; do
[[ -z $md5 ]] && continue
base=${file##*-}
echo "md5: $md5"
echo "file:$file"
echo "base: $base"
done <<EOF
fd373e07fd6f85085455a7d03a6ea8d8 /Volumes/yadda/20121007-083424-MDT-5DM35545.CR2
b4108ee8509dbfd0e8fd93effbb2c87f /Volumes/yadda/20121007-083424-MDT-5DM35546.CR2
98188a4e073a65d39840b34446228533 /Volumes/yadda/20121007-083424-MDT-5DM35547.CR2
7fe69f18e1a216a7a68812b1b3322764 /Volumes/yadda/20121007-083424-MDT-5DM35548.CR2
7b48289014eddab153a819a460a46f83 /Volumes/yadda/20121007-083424-MDT-5DM35549.CR2
832f43451691fa4e8577f66820f8714c /Volumes/yadda/20121007-083424-MDT-5DM35550.CR2
EOF
md5: fd373e07fd6f85085455a7d03a6ea8d8
file:/Volumes/yadda/20121007-083424-MDT-5DM35545.CR2
base: 5DM35545.CR2
md5: b4108ee8509dbfd0e8fd93effbb2c87f
file:/Volumes/yadda/20121007-083424-MDT-5DM35546.CR2
base: 5DM35546.CR2
md5: 98188a4e073a65d39840b34446228533
file:/Volumes/yadda/20121007-083424-MDT-5DM35547.CR2
base: 5DM35547.CR2
md5: 7fe69f18e1a216a7a68812b1b3322764
file:/Volumes/yadda/20121007-083424-MDT-5DM35548.CR2
base: 5DM35548.CR2
md5: 7b48289014eddab153a819a460a46f83
file:/Volumes/yadda/20121007-083424-MDT-5DM35549.CR2
base: 5DM35549.CR2
md5: 832f43451691fa4e8577f66820f8714c
file:/Volumes/yadda/20121007-083424-MDT-5DM35550.CR2
base: 5DM35550.CR2