# sed, awk और पाइपिंग — लिनक्स

Source: https://www.geekswithgeeks.com/hi/linux/linux-sed-awk-pipes

> टेक्स्ट बदलें और कमांड्स को आपस में जोड़ें।

## sed — टेक्स्ट बदलें

`sed 's/old/new/'` हर लाइन में पहला मेल बदलता है; सभी मेल बदलने के लिए `g` जोड़ें।

```bash
echo "cat sat on mat" | sed 's/at/og/'
```

Output:

```
cog sat on mat
```

## awk — एक फील्ड निकालें

`awk` हर लाइन को व्हाइटस्पेस से फील्ड्स में तोड़ता है (`$1`, `$2`, ...) और उन्हें छापने या प्रोसेस करने देता है।

```bash
ps aux | awk '{print $2, $11}'
```

Output:

```
1 /sbin/init
842 /usr/bin/bash
```

## कमांड्स को पाइप से जोड़ना

`|` एक कमांड का आउटपुट अगले कमांड के इनपुट के रूप में भेजता है, जिससे छोटे टूल्स मिलकर शक्तिशाली पाइपलाइन बनाते हैं।

```bash
cat access.log | grep "404" | wc -l
```

Output:

```
37
```

**Quiz:** `sed 's/foo/bar/g'` क्या करता है?

- [ ] हर लाइन में केवल पहला 'foo' बदलता है
- [x] हर लाइन में हर 'foo' को 'bar' से बदलता है
- [ ] 'foo' वाली लाइनें हटाता है

*Answer:* हर लाइन में हर 'foo' को 'bar' से बदलता है. `g` फ्लैग replacement को global बनाता है — हर लाइन में सभी मेल, सिर्फ पहला नहीं।
