linux - 如何在 shell 脚本中交换单词?

标签 linux shell sed

这是我的输入行
[[ref:start|其他配置文件、程序和脚本]]

我需要将上面的行转换成
"其他配置文件、程序和脚本":ref/start

如何使用 sed 命令转换它?

最佳答案

写比读容易:)

$ echo "[[ref:start|Other config files, programs, and scripts]]" |\
  sed 's/\[\[\([^:]*\):\([^|]*\)|\(.*\)\]\]/"\3":\1\/\2/'
"Other config files, programs, and scripts":ref/start

我建议您阅读 man sed以及GNU sed manual .它不是那么大,您实际上不需要一次阅读所有内容。在大多数情况下,了解 s/// 命令、正则表达式语法和 sed 的标志就足够了(最有用的是 -n-i) .

关于linux - 如何在 shell 脚本中交换单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7695156/

相关文章:

c - C语言中如何使用管道连接两个子进程

linux - cygnus 服务未作为服务启动

linux - 使用 awk 从文件中读取元组

regex - 使用 sed 替换未转义的双引号

linux - 当定界符也出现在文件中任何位置的字段数据中时,如何替换定界符?

unix - 如何在unix中删除文件中的重复行?

java - 在远程服务器中抓取的 Hibernate 输出汉字

linux - 如何模拟在 linux bash 中按下箭头键

linux脚本移动目录中的文件和数据

c - Linux——内存映射文件