我有一个包含以下条目的文件,非常长,所以请举几个例子:
media-libs/gd fontconfig xpm
media-sound/audacious -gtk gtk3
net-analyzer/wireshark -gtk3 -ssl -qt4 qt5 lua geoip kerberos adns
net-dialup/ppp -gtk我需要在/和第一个空格之间复制名为like name的新文件中的每一行。
所以我有一个名为gd,audacious,wireshark和ppp的文件,在文件名后面有适当的内容。
media-libs/gd fontconfig xpm
media-sound/audacious -gtk gtk3
net-analyzer/wireshark -gtk3 -ssl -qt4 qt5 lua geoip kerberos adns
net-dialup/ppp -gtk感谢您的帮助,祝周末愉快!
Silvio
发布于 2015-12-19 21:06:03
我认为你需要这样的东西,但请在一个单独的目录中尝试它,在那里你只有一份数据的副本:
awk '{f=$1;sub(/.*\//,"",f);print > f}' yourFile它可能不是那么健壮,但是它取每一行的第一个字段,将所有内容剥离成斜杠并将其保存为f,然后将整个行写到文件f中。
发布于 2015-12-20 05:05:48
当您想要使用while循环进行循环时,您可以查看:
while read -r line; do
echo "line=${line}"
noSlash=${line##*/}
echo "noSlash=${noSlash}"
filename=${noSlash%% *}
echo "filename=${filename}"
content=${noSlash#* }
echo "Content=${content}"
done < input每次对代码最后一行的输入文件进行1行解析。使用#和%解析变量。测试结果在上面的代码中得到了响应。WHen如果你对这个解决方案满意,你可以使用
while read -r line; do
noSlash=${line##*/}
filename=${noSlash%% *}
content=${noSlash#* }
printf "%s\n" "${content}" > "${filename}"
done < inputhttps://stackoverflow.com/questions/34370870
复制相似问题