簡體   English   中英

該命令在做什么? sed

[英]What is this command doing? sed

我得到了一組通用命令,這些示例將作為我必須執行的操作的示例:

1 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|sshfs \1:/opt/dextor/cloud \1|"
2 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|sshfs \1:/opt/dextor/cloud \1|" | sh
3 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|cp run.sh \1/|" 
4 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|cp run.sh \1/|" | sh

這到底在做什么?

我了解到machine.list的內容正在傳遞給sed,但是sed命令在做什么?

謝謝!

我將解釋cat /etc/dsh/machines.list | sed -e "s|\\(.*\\)|cp run.sh \\1/|" cat /etc/dsh/machines.list | sed -e "s|\\(.*\\)|cp run.sh \\1/|" 對你來說,休息都一樣。

1) cat將讀取來自machines.list行並將其傳遞給sed。

2)sed基本上是進行match and replace操作。

| 用作分隔符,可以是任何字符,通常是/ 基本上是這樣|match this|replace with this|

您正在匹配\\(.*\\) ,這基本上是告訴sed匹配所有符合條件的行。 . 匹配每個字符, *表示可以多次匹配該字符。 使用()會將匹配項保存在\\1

在替換部分中,您將其替換為文本cp run.sh \\1/\\1將包含匹配的內容。

我也認為根本不需要使用cat 最好以這種方式使用它sed -e "s|\\(.*\\)|cp run.sh \\1/|" /etc/dsh/machines.list sed -e "s|\\(.*\\)|cp run.sh \\1/|" /etc/dsh/machines.list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM