如何解决如何在Linux中分割线
我有一个文件,其中包含几行,每行包含一个url-
http://some_address1/some_page1/anther_page1/my_target1
http://some_address2/some_page2/some_page2/my_target2
...
我想创建一个新文件,该文件的每个网址末尾-
my-target1
my_target2
...
如何在Linux cmd中执行此操作?
解决方法
您可以使用awk,将/
设置为字段定界符,并将print
设置为最后一个字段($NF
):
$ awk -F/ '{print $NF}' file
输出:
my_target1
my_target2
...
创建新文件,该文件的每个url结束在上述命令后添加> newfile
。这将创建一个名为newfile
的新文件,或者将其覆盖(如果已存在)并将上述输出发送给它。
您可以使用basename
:
basename "http://some_address1/some_page1/anther_page1/my_target1"
申请文件中的所有行:
xargs basename < urls_file
,
您可以使用以下bash命令,其中file
是输入文件的路径,而output
是所需输出的路径:
while read line; do basename $line; done < file > output
,
由于mapfile
,使用bash数组和参数扩展需要bash4 +。
#!/usr/bin/env bash
mapfile -t urls < file.txt
for i in "${urls[@]##*/}"; do
printf '%s\n' "$i"
done
- 将
printf '%s\n' "$i"
替换为touch "$i"
或仅替换> "$i"
,以创建一个新的空文件。
使用sed
sed 's|^.*/||' file > new_file
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。