/ / लिनक्स 'कट' कमांड लाइन और प्रतिस्थापित करें - लिनक्स, बैश, शेल, यूनिक्स

लिनक्स ' कट ' कमांड लाइन और बदलें-लिनक्स, मार, शैल, यूनिक्स

मुझे कुछ पाठ बनाने की आवश्यकता है cut लिनक्स टर्मिनल पर स्पेस के साथ कमांड और बदलें।

उदाहरण:

Linux
inux
nux
ux
x

यह मेरी बैश स्क्रिप्ट है।

#!/bin/bash
INPUT=$@
SIZE=$(echo $INPUT|wc -c)
let $((SIZE--))
for i in $(seq 1 $SIZE);
do echo $INPUT | cut -c ${i}-${SIZE} ;
done

और मैं कुछ पाठ बनाने में असफल रहा जैसे:

Linux
inux
nux
ux
x

उत्तर:

जवाब के लिए 0 № 1

यह काम कर जाना चाहिए:

#!/bin/bash

INPUT="$@"
SIZE=${#INPUT}

for ((i=0; i < ${SIZE}; i++)); do
echo "${INPUT}"
INPUT="${INPUT:0:${i}} ${INPUT:$((i+1)):${SIZE}}"
#INPUT="$(echo "$INPUT" | sed "s/^(.{${i}})./1 /")"
done

मैंने एक जोड़ा sed टिप्पणी में विकल्प, हालांकि यह एक उप-प्रक्रिया बनाता है जब आप वास्तव में नहीं करते हैं।